背景:

  公司使用的YDB提供了http的查询数据库服务,直接通过url传入sql语句查询数据-_-||。ydb的使用参照:https://www.cnblogs.com/hd-zg/p/7115112.html

  有的业务使用到了该功能。但ydb系统升级后,这个服务被遗漏了,导致使用到该功能的业务无法继续使用该功能。为了解决这个问题,需要开发一个http服务来调用ydb的jdbc接口返回json数据。

  鉴于这个工程只需要一个http接口,用tomcat感觉太重了,于是打算手写一个简单的http服务。

知识点:

  这个过程涉及到写服务,打包,执行,排错等过程。

过程:在这里把开发步骤在此列举一下,以便后面遇到类似问题时,快速解决。具体步骤如下:

第一步:写http服务

设置端口号,连接数,请求处理类。本过程中可能需要依赖其他jar包,可以放在与src平级的lib目录下

public class Main {

    public static void main(String[] arg) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(),100);
server.createContext("/test", new TestHandler());
server.start();
} static class TestHandler implements HttpHandler{
@Override
public void handle(HttpExchange exchange) throws IOException {
String response = "hello world";
exchange.sendResponseHeaders(, );
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
}

第二步:使用idea打成可执行jar包

1、设置Artifacts,使用jar,并选择From modules with dependencies,否则依赖的jar包会丢失

2、设置Main Class,为jar包指定入口,设置的Main Class里面必须要包含main方法

3、打包

第三步:运行

  1、将打成的xxx.jar包放在linux服务器的某个目录下,如/home/xxx

  2、执行命令启动java -jar xxx.jar,这是最简单的启动命令,这样写的话,如果使用CTRL+C中断了该命令,则服务就会挂了,因此需要后台执行

  3、后台执行命令需要在java命令前面加上nohup命令,为了进一步查看产生的日志,可以使用如下命令:

    nohup java -jar /home/xxx/xxx.jar > /home/xxx/log.out>&1 &

  最后的&符号一定不能丢,否则ctrl+c时,服务还是会挂

维护:

使用过程成需要重启,看日志等

重启,即查看进程、杀进程、重新运行

看日志,日志在启动时指定了日志路径

不使用Tomcat,手写简单的web服务的更多相关文章

  1. tomcat+webservice实现简单的web服务远程调用接口

    1,准备工作:    ①需要使用到jaxws的一系列架包,网址:http://jax-ws.java.net,我下的是比较新的一个版本(下载好以后吧架包发在lib下),②webservice的一个工具 ...

  2. linux系统下开启一个简单的web服务

    linux 下开启一个简单的web服务: 首先需要linux下安装nodejs 然后创建一个test.js:   vi test.js var http =require("http&quo ...

  3. node创建一个简单的web服务

    本文将如何用node创建一个简单的web服务,过程也很简单呢~ 开始之前要先安装node.js 1.创建一个最简单的服务 // server.js const http = require('http ...

  4. nodejs创建一个简单的web服务

    这是一个突如其来的想法,毕竟做web服务的框架那么多,为什么要选择nodejs,因为玩前端时,偶尔想调用接口获取数据,而不想关注业务逻辑,只是想获取数据,使用java或者.net每次修改更新后还要打包 ...

  5. 手写简单call,apply,bind

    分析一下call的使用方法:call是显示绑定this指向,然后第一个参数是你所指向的this对象,后面跟着多个参数,以逗号隔开 function sum(num1,num2){ return num ...

  6. 深入剖析tomcat之一个简单的web服务器

    这个简单的web服务器包含三个类 HttpServer Request Response 在应用程序的入口点,也就是静态main函数中,创建一个HttpServer实例,然后调用其await()方法. ...

  7. 手写内网穿透服务端客户端(NAT穿透)原理及实现

    Hello,I'm Shendi. 这天心血来潮,决定做一个内网穿透的软件. 用过花生壳等软件的就知道内网穿透是个啥,干嘛用的了. 我们如果有服务器(比如tomcat),实际上我们在电脑上开启了服务器 ...

  8. 使用python命令构建最简单的web服务

    可以使用python自带的包建立最简单的web服务器,使用方法: 1)切换到服务器的根目录下 2)输入命令: python -m SimpleHTTPServer 3)使用wget或者在浏览器访问测试 ...

  9. 基于gin框架搭建的一个简单的web服务

    刚把go编程基础知识学习完了,学习的时间很短,可能还有的没有完全吸收.不过还是在项目中发现知识,然后在去回顾已学的知识,现在利用gin这个web框架做一个简单的CRUD操作. 1.Go Web框架的技 ...

随机推荐

  1. 第四课——MFC应用程序框架

    一.MFC应用程序类型 上篇文章的彩蛋:可通过使用MFC应用程序向导(MFC AppWizard)的功能来创建所需要的应用程序,这意味着不需要输入任何代码.MFC除了应用程序向导,还对应用程序项目有着 ...

  2. 软工1816 · Alpha冲刺(2/10)

    团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 与前后端敲定接口设计的细节 重新理清业务逻辑,对项目最初的设想进行一定修正 跟 ...

  3. python 抓取网上OJ试题

    学校工作需要,需架设一台内网OJ服务器,采用了开源的hustoj.试题下载了hustoj的freeprblem的xml文件.导入时出现很多错误,不知什么原因.另外要将历年noip复赛试题加上去,但苦于 ...

  4. iOS-创建UIScrollerView(封装UIScrollerView)

    创建继承于UIView的类WJImageScrollView,代码实现如下: WJImageScrollView.h #import <UIKit/UIKit.h> /**点击图片bloc ...

  5. Kprobe

    linux内核源码Documentation目录下存在kprobe介绍文档如下 Kprobes allows multiple probes at the same address.  Current ...

  6. win10 64位系统中安装多个jdk版本的切换问题

    前言: 近期要更换oracle jdk到zulu jdk,因此在本地先安装一版zulu的来进行代码的编译和比较. 注释: 本地电脑之前是oracle jdk 1.8,要更换为zulu jdk 1.8. ...

  7. Jmeter系列-webdriver代码范例

    范例 WDS.sampleResult.sampleStart() try{ //打开博客首页 WDS.browser.get('http://xqtesting.blog.51cto.com') / ...

  8. java 基础 --集合--012

    1, 数组与集合 A:长度不同 数组的长度固定,集合的长度可变 B:内容不同 数组里存储的是同一种类型的元素,而集合可以存储不同类型的元素 C:元素的数据类型问题 数组可以存储基本数据类型,也可以存储 ...

  9. OSI参考模型和TCP/IP参考模型

  10. [剑指Offer] 64.滑动窗口的最大值

    题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6 ...