背景:

  公司使用的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. android仿美团客户端购买框悬浮特效

        实现步骤如下: 1,新建一个项目,新建一个MyScrollView继承自ScrollView   public class MyScrollView extends ScrollView { ...

  2. iOS奔溃日志信息统计使用笔记

    1.Bugly的集成很简单,直接一个pod就可以搞定 pod 'Bugly' 2.在官网上注册账号 3.初始化SDK 导入头文件 在工程的AppDelegate.m文件导入头文件 #import &l ...

  3. Shell脚本查看linux系统性能瓶颈

    脚本目的:分析系统资源性能瓶颈 脚本功能: 1.查看CPU利用率与负载(top.vmstat.sar) 2.查看磁盘.Inode利用率与I/O负载(df.iostat.iotop.sar.dstat) ...

  4. parse_str — 将字符串解析成多个变量

    $arr2="first=value1&second=value2&third[]=value3&third[]=value4"; parse_str($a ...

  5. MyBatis原理系列

    原理分析之一:从JDBC到Mybatis 原理分析之二:框架整体设计 原理分析之三:初始化(配置文件读取和解析) 原理分析之四:一次SQL查询的源码分析

  6. 使用Visual C ++和Open Folder自定义环境

    使用Visual C ++和Open Folder自定义环境 来源 https://blogs.msdn.microsoft.com/vcblog/2016/10/05/bring-your-c-co ...

  7. 详解 ES6 Modules

    详解 ES6 Modules 对于新人朋友来说,想要自己去搞定一个ES6开发环境并不是一件容易的事情,因为构建工具的学习本身又是一个非常大的方向,我们需要花费不少的时间才能掌握它. 好在慢慢的开始有大 ...

  8. 【原创】宿主机远程登录虚拟机(windows server 2003系统)

    转载请注明,谢谢合作 1.虚拟机网络设置为  “桥接模式”如图 2.系统装好并登陆后 右键点击我的电脑,点击属性,然后在弹出来的选择框中勾选远程桌面-->启用这台计算机的远程桌面 然后点添加-- ...

  9. 2017 ICPC beijing F - Secret Poems

    #1632 : Secret Poems 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 The Yongzheng Emperor (13 December 1678 – ...

  10. BZOJ3534:[SDOI2014]重建——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3534 https://www.luogu.org/problemnew/show/P3317 T国 ...