怎样才能有自己的网站,在线设计平台的概念,wordpress首页位置,wordpress次级菜单用Java创建WebService非常容易。 将其添加到ServletContainer并将其部署到嵌入式WebServer仅需要几行代码。 让我们创建一个具有两个函数的简单计算器#xff0c;作为WebService的示例。 计算器将计算任何数量的squareRoot和平方。 它将返回一个简单的JSON响应#xff0c;其… 用Java创建WebService非常容易。 将其添加到ServletContainer并将其部署到嵌入式WebServer仅需要几行代码。 让我们创建一个具有两个函数的简单计算器作为WebService的示例。 计算器将计算任何数量的squareRoot和平方。 它将返回一个简单的JSON响应其中包含动作名称输入和输出。 在我们开始之前这是Gradle配置您将需要 apply plugin: javaversion 1.0repositories {mavenCentral()
}dependencies {compile group: org.glassfish.jersey.core, name: jersey-server, version: 2.7compile group: org.glassfish.jersey.containers, name: jersey-container-servlet-core, version: 2.7compile group: org.glassfish.jersey.containers, name: jersey-container-jetty-http, version: 2.7compile group: org.glassfish.jersey.media, name: jersey-media-moxy, version: 2.7compile group: org.eclipse.jetty.aggregate, name: jetty-all, version: 9.3.0.M1testCompile group: junit, name: junit, version: 4.11
} 这是计算器的代码 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 {GETPath(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;}GETPath(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// localhost8080 / calculator / squareRootinput 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