有的時候需要將一個簡單的功能封裝為服務,相比python使用flask、web.py的簡潔,使用java-web顯得太重量級,幸好,我們可以直接在java項目中使用jetty來搭建簡易服務
1、pom.xml加入jetty依賴
<dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>9.4.0.v20161208</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>9.4.0.v20161208</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-continuation</artifactId> <version>9.4.0.v20161208</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-jsp</artifactId> <version>9.1.4.v20140401</version> </dependency>
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 即可