java内嵌jetty服务器
有的时候需要将一个简单的功能封装为服务,相比python使用flask、web.py的简洁,使用java-web显得太重量级,幸好,我们可以直接在java项目中使用jetty来搭建简易服务
1、pom.xml加入jetty依赖
org.eclipse.jetty jetty-server 9.4.0.v20161208 org.eclipse.jetty jetty-webapp 9.4.0.v20161208 org.eclipse.jetty jetty-continuation 9.4.0.v20161208 org.eclipse.jetty jetty-jsp 9.1.4.v20140401
2、增加Server
Serverserver=newServer(12580);
3、设置ServletContextHandler
ServletContextHandlercontext=newServletContextHandler(server,"/"); server.setHandler(context);
4、Context增加Servlet
4.1 创建Servlet 继承HttpServlet,重载doGet,doPost即可
public class XXXHandler extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { JSONObject ret = new JSONObject(); try { String ttsTxt = req.getParameter("text"); String outFile = System.nanoTime() + ".mp4"; String url = xx.xxx(ttsTxt,...); ret.put("ret","0"); ret.put("url",url); }catch (Exception ex){ ret.put("ret","-1"); ret.put("error",ex.getMessage()); } if(req.getParameter("callback")!=null) { resp.getWriter().write(req.getParameter("callback")+"("+ret.toString()+")"); }else { resp.getWriter().write(ret.toString()); } } }
4.2 将Servlet 加入Context
context.addServlet(xxxHandler.class,"/xxx"); context.addServlet(Image2VideoHandler.class,"/*");
5、启动server
server.start(); server.join();
6、在浏览器访问http://localhost:12580/XXX 即可