jax-ws和jax-rs_使用JAX-RS和Jetty创建Web服务和Rest Server
jax-ws和jax-rs
用Java創建WebService非常容易。 將其添加到ServletContainer并將其部署到嵌入式WebServer僅需要幾行代碼。
讓我們創建一個具有兩個函數的簡單計算器,作為WebService的示例。 計算器將計算任意數量的squareRoot和平方。 它將返回一個簡單的JSON響應,其中包含動作名稱,輸入和輸出。
在我們開始之前,這是Gradle配置,您將需要:
這是計算器的代碼:
package example;import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType;@Path("calculator") public class Calculator {@GET@Path("squareRoot")@Produces(MediaType.APPLICATION_JSON)public Result squareRoot(@QueryParam("input") double input){Result result = new Result("Square Root");result.setInput(input);result.setOutput(Math.sqrt(result.getInput()));return result;}@GET@Path("square")@Produces(MediaType.APPLICATION_JSON)public Result square(@QueryParam("input") double input){Result result = new Result("Square");result.setInput(input);result.setOutput(result.getInput()*result.getInput());return result;}static class Result{double input;double output;String action;public Result(){}public Result(String action) {this.action = action;}public String getAction() {return action;}public void setAction(String action) {this.action = action;}public double getInput() {return input;}public void setInput(double input) {this.input = input;}public double getOutput() {return output;}public void setOutput(double output) {this.output = output;}} }注釋確定REST動作的類型將被施加到該方法@GET , @PUT等@Path注釋確定該請求的URI和@Produces注釋確定如何響應將被返回。 在我們的例子中,我們選擇JSON,所有這些轉換都可以無縫處理。
為了部署WebService,我們需要一個將使用Jersey的ServletContainer和一個我們可以將要使用Jetty的容器放入其中的WebServer。
這是RestServer的代碼:
package example;import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder;public class RestServer {public static void main(String[] args) throws Exception {ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);context.setContextPath("/");Server jettyServer = new Server(8080);jettyServer.setHandler(context);ServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*");jerseyServlet.setInitOrder(0);jerseyServlet.setInitParameter("jersey.config.server.provider.classnames",Calculator.class.getCanonicalName());try {jettyServer.start();jettyServer.join();} finally {jettyServer.destroy();}} }運行RestServer之后,您將可以使用此URL對其進行測試。
- http:// localhost:8080 / calculator / squareRoot?input = 16
從IntelliJ運行查詢的一種非常不錯的方法是使用內置的REST Client,可以在工具菜單下找到它。
當您運行REST客戶端時,您將獲得以下響應:
這是測試RESTful服務器的一種非常簡單的方法。
翻譯自: https://www.javacodegeeks.com/2015/03/creating-web-services-and-a-rest-server-with-jax-rs-and-jetty.html
jax-ws和jax-rs
總結
以上是生活随笔為你收集整理的jax-ws和jax-rs_使用JAX-RS和Jetty创建Web服务和Rest Server的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gradle maven_将工件从Gra
- 下一篇: 安卓屏幕失灵点不动怎么办(安卓屏幕失灵)