用Java创建WebService非常容易。 将其添加到ServletContainer并将其部署到嵌入式WebServer仅需要几行代码。

让我们创建一个具有两个函数的简单计算器,作为WebService的示例。 计算器将计算任何数量的squareRoot和平方。 它将返回一个简单的JSON响应,其中包含动作名称,输入和输出。

在我们开始之前,这是Gradle配置,您将需要:

apply plugin: 'java'version = '1.0'repositories {mavenCentral()
}dependencies {compile group: 'org.glassfish.jersey.core', name: 'jersey-server', version: '2.7'compile group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet-core', version: '2.7'compile group: 'org.glassfish.jersey.containers', name: 'jersey-container-jetty-http', version: '2.7'compile group: 'org.glassfish.jersey.media', name: 'jersey-media-moxy', version: '2.7'compile group: 'org.eclipse.jetty.aggregate', name: 'jetty-all', version: '9.3.0.M1'testCompile 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 {@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-RS和Jetty创建Web服务和Rest Server相关推荐

  1. jax-ws和jax-rs_使用JAX-RS和Jetty创建Web服务和Rest Server

    jax-ws和jax-rs 用Java创建WebService非常容易. 将其添加到ServletContainer并将其部署到嵌入式WebServer仅需要几行代码. 让我们创建一个具有两个函数的简 ...

  2. maven项目 jetty_如何使用Java,Maven,Jetty创建Web应用程序项目

    maven项目 jetty 在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在一个名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编 ...

  3. 如何使用Java,Maven,Jetty创建Web应用程序项目

    在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编写简单的Servlet,并生成W ...

  4. 手把手教你在.NET中创建Web服务

    最近发现在.NET平台下使用Web服务还是很简单的. 下面举个在.NET平台下创建Web服务的简单例子.首先用Visul Studio .Net创建一个C# 项目Asp.Net Web服务程序,源代码 ...

  5. LabVIEW创建Web服务

    LabVIEW创建Web服务 在LabVIEW项目中开发Web服务,组合并配置构成Web服务的VI和其他文件.按照下列步骤创建一个Web服务项目和两个HTTP方法VI. 创建一个组织Web服务文件的L ...

  6. 【VMCloud云平台】SCVMM配置(九)创建Web服务模板

    继续上一篇完成SCVMM创建SQL服务模板后,本篇将继续讲述云平台中的第一个组件--SCVMM创建第一个Web服务模板(即下图中的SCVMM01,蓝色为未实现,绿色为计划中,红色为实施中). 1. 登 ...

  7. Java IDE MyEclipse 使用教程:创建Web服务项目

    本教程概述了开发 JAX-WS Web 服务并将其部署到 Tomcat 服务器的过程.本教程中使用的 Web 服务是一个非常简单的计算器服务,它为调用者提供加.减.乘和除运算. 本教程需要下载 MyE ...

  8. ASP.NET 创建、发布、使用Web服务的详细方法

    一.创建Web服务 1.首先,打开VS(本例以VS2017为例).创建一个ASP.NET Web 应用程序,位置和名称自定义,本例我把这个项目创建在桌面,名字叫helloWho.然后点击[确定],在弹 ...

  9. WSAS和Eclipse简化了Web服务的创建

    存档日期:2019年5月15日 | 首次发布:2008年3月4日 今天,我们到处都有Web服务. 您很有可能需要为正在开发的任何新应用程序或功能创建Web服务. 不久之前,这可能是一个痛苦的提议. W ...

最新文章

  1. 查看ocx控件CLSID的方法
  2. 特斯拉前员工承认备份AutoPilot代码,但入职小鹏汽车前已删除
  3. MFC 常用系统函数
  4. ALBERT第一作者亲自讲解:词向量、BERT、ALBERT、XLNet全面解析
  5. 图像滤波之高斯滤波介绍
  6. Chapter6 Commodity Forwards
  7. ImportError: cannot import name ‘AliPay‘ from ‘alipay‘
  8. SpringCloud Config 分布式配置
  9. 章鱼扫描仪:Java构建工具和恶意软件
  10. [Python][小知识][NO.3] Python 使用系统默认浏览器打开指定URL的网址
  11. GridView控件RowDataBound事件中获取列字段值的几种途径
  12. 理解Angular的Reactive Form
  13. getmenuiteminfo无法读取内存_简单科普系列—内存为什么需要组双通道原理及其作用...
  14. 从小白创建自己的CSND
  15. 简易解inode802.1x认证实战(6)交叉编译
  16. 移动APP自动化测试框架对比
  17. 四参数旋转角异常,平面坐标方位角不准确的问题
  18. Canvas入门教学(4)动画与碰撞检测
  19. 清华教授:多年以来,我对我的学生都不太满意
  20. 事件2 有源码 可以随意进行练习哈 太棒了 一起加油 一起成长

热门文章

  1. java百钱白鸡的算法
  2. $router VS $route
  3. java多表查询返回数据_spring data jpa如何在多张数据库表中查询返回某些字段值?...
  4. java虚拟机采用UTF-16编码格式对字符进行编码
  5. 一个会定时完成的任务(二)
  6. swarm:pending_WildFly Swarm:使用Java EE构建微服务
  7. gradle排除依赖_如何从Gradle中的所有依赖项中排除库
  8. neo4j 嵌入式_在嵌入式Neo4j中使用Neo4j浏览器
  9. 复合主键 复合外键_复合双重错误
  10. 使Java具有响应性的框架和工具包:RxJava,Spring Reactor,Akka和Vert.x概述