栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何仅使用注释(不使用web.xml)设置JAX-RS Application?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何仅使用注释(不使用web.xml)设置JAX-RS Application?

接受的答案确实有效,但前提是将Web应用程序部署到Glassfish或Wildfly之类的应用程序服务器,并且可能部署到具有EE扩展名的servlet容器(例如TomEE)。它不适用于像Tomcat这样的标准servlet容器,我敢肯定,大多数在此寻找解决方案的人都想使用它。

如果你正在使用标准的Tomcat安装(或其他一些servlet容器),则需要包括REST实现,因为Tomcat并不附带此实现。如果你使用的是Maven,请将其添加到以下

dependencies
部分:

<dependencies>  <dependency>    <groupId>org.glassfish.jersey.bundles</groupId>    <artifactId>jaxrs-ri</artifactId>    <version>2.13</version>  </dependency>  ...</dependencies>

然后只需将应用程序配置类添加到你的项目中。如果除了设置其余服务的上下文路径之外,没有其他特殊配置需求,则该类可以为空。添加此类后,你无需在web.xml其中进行任何配置(或完全不需要配置):

package com.domain.mypackage;import javax.ws.rs.ApplicationPath;import javax.ws.rs.core.Application;@ApplicationPath("rest") // set the path to REST web servicespublic class ApplicationConfig extends Application {}

之后,使用Java类中的标准JAX-RS批注直接声明Web服务:

package com.domain.mypackage;import javax.ws.rs.Consumes;import javax.ws.rs.Produces;import javax.ws.rs.GET;import javax.ws.rs.MatrixParam;import javax.ws.rs.Path;// It's good practice to include a version number in the path so you can have// multiple versions deployed at once. That way consumers don't need to upgrade// right away if things are working for them.@Path("calc/1.0")public class CalculatorV1_0 {  @GET  @Consumes("text/plain")  @Produces("text/plain")  @Path("addTwoNumbers")  public String add(@MatrixParam("firstNumber") int n1, @MatrixParam("secondNumber") int n2) {    return String.valueOf(n1 + n2);  }}

这应该是你所需要的。如果你的Tomcat安装程序在端口8080上本地运行,并且将WAR文件部署到上下文中myContext,则将…

http://localhost:8080/myContext/rest/calc/1.0/addTwoNumbers;firstNumber=2;secondNumber=3
…应该产生预期的结果(5)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411094.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号