不使用Tomcat,手写简单的web服务
背景:
公司使用的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服务的更多相关文章
- tomcat+webservice实现简单的web服务远程调用接口
1,准备工作: ①需要使用到jaxws的一系列架包,网址:http://jax-ws.java.net,我下的是比较新的一个版本(下载好以后吧架包发在lib下),②webservice的一个工具 ...
- linux系统下开启一个简单的web服务
linux 下开启一个简单的web服务: 首先需要linux下安装nodejs 然后创建一个test.js: vi test.js var http =require("http&quo ...
- node创建一个简单的web服务
本文将如何用node创建一个简单的web服务,过程也很简单呢~ 开始之前要先安装node.js 1.创建一个最简单的服务 // server.js const http = require('http ...
- nodejs创建一个简单的web服务
这是一个突如其来的想法,毕竟做web服务的框架那么多,为什么要选择nodejs,因为玩前端时,偶尔想调用接口获取数据,而不想关注业务逻辑,只是想获取数据,使用java或者.net每次修改更新后还要打包 ...
- 手写简单call,apply,bind
分析一下call的使用方法:call是显示绑定this指向,然后第一个参数是你所指向的this对象,后面跟着多个参数,以逗号隔开 function sum(num1,num2){ return num ...
- 深入剖析tomcat之一个简单的web服务器
这个简单的web服务器包含三个类 HttpServer Request Response 在应用程序的入口点,也就是静态main函数中,创建一个HttpServer实例,然后调用其await()方法. ...
- 手写内网穿透服务端客户端(NAT穿透)原理及实现
Hello,I'm Shendi. 这天心血来潮,决定做一个内网穿透的软件. 用过花生壳等软件的就知道内网穿透是个啥,干嘛用的了. 我们如果有服务器(比如tomcat),实际上我们在电脑上开启了服务器 ...
- 使用python命令构建最简单的web服务
可以使用python自带的包建立最简单的web服务器,使用方法: 1)切换到服务器的根目录下 2)输入命令: python -m SimpleHTTPServer 3)使用wget或者在浏览器访问测试 ...
- 基于gin框架搭建的一个简单的web服务
刚把go编程基础知识学习完了,学习的时间很短,可能还有的没有完全吸收.不过还是在项目中发现知识,然后在去回顾已学的知识,现在利用gin这个web框架做一个简单的CRUD操作. 1.Go Web框架的技 ...
随机推荐
- android仿美团客户端购买框悬浮特效
实现步骤如下: 1,新建一个项目,新建一个MyScrollView继承自ScrollView public class MyScrollView extends ScrollView { ...
- iOS奔溃日志信息统计使用笔记
1.Bugly的集成很简单,直接一个pod就可以搞定 pod 'Bugly' 2.在官网上注册账号 3.初始化SDK 导入头文件 在工程的AppDelegate.m文件导入头文件 #import &l ...
- Shell脚本查看linux系统性能瓶颈
脚本目的:分析系统资源性能瓶颈 脚本功能: 1.查看CPU利用率与负载(top.vmstat.sar) 2.查看磁盘.Inode利用率与I/O负载(df.iostat.iotop.sar.dstat) ...
- parse_str — 将字符串解析成多个变量
$arr2="first=value1&second=value2&third[]=value3&third[]=value4"; parse_str($a ...
- MyBatis原理系列
原理分析之一:从JDBC到Mybatis 原理分析之二:框架整体设计 原理分析之三:初始化(配置文件读取和解析) 原理分析之四:一次SQL查询的源码分析
- 使用Visual C ++和Open Folder自定义环境
使用Visual C ++和Open Folder自定义环境 来源 https://blogs.msdn.microsoft.com/vcblog/2016/10/05/bring-your-c-co ...
- 详解 ES6 Modules
详解 ES6 Modules 对于新人朋友来说,想要自己去搞定一个ES6开发环境并不是一件容易的事情,因为构建工具的学习本身又是一个非常大的方向,我们需要花费不少的时间才能掌握它. 好在慢慢的开始有大 ...
- 【原创】宿主机远程登录虚拟机(windows server 2003系统)
转载请注明,谢谢合作 1.虚拟机网络设置为 “桥接模式”如图 2.系统装好并登陆后 右键点击我的电脑,点击属性,然后在弹出来的选择框中勾选远程桌面-->启用这台计算机的远程桌面 然后点添加-- ...
- 2017 ICPC beijing F - Secret Poems
#1632 : Secret Poems 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 The Yongzheng Emperor (13 December 1678 – ...
- BZOJ3534:[SDOI2014]重建——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=3534 https://www.luogu.org/problemnew/show/P3317 T国 ...