爪哇中的Restful Web 服务s示例
在本文中,我们将在eclipse中使用jersey使用Java开发Restful Web服务示例。
Web服务教程内容:
- 网络服务介绍
- Web服务面试问题
- SOAP Web服务介绍
- 休息ful Web服务介绍
- SOAP和REST Web服务之间的区别
- 使用Eclipse的Java中的SOAP Web服务示例
- JAX-WS Web服务Eclipse教程
- 在Tomcat上部署JAX-WS Web服务
- 使用Jersey在Java(JAX-RS)中创建RESTful Web服务
- 休息ful Web服务
- JAJSON使用球衣的示例
- 休息ful Web服务
- 使用球衣的JAXRS CRUD示例
- AngularJS 休息ful Web服务
- 使用$ http的JAXRS CRUD示例
- 休息ful Web服务(JAX-RS)@QueryParam示例
- 弹簧 Rest简单示例
- 弹簧 Rest JSON示例
- 弹簧 Rest XML格式示例
- 弹簧 Rest CRUD示例
泽西岛是此规范的参考实现。泽西岛基本上包含一个REST服务器和一个REST客户端。核心客户端可以使用jersey LIB与服务器通信。
在服务器端,Jersey使用servlet来扫描预定义的类以标识RESTful资源。通过适用于您的Web应用程序的web.xml配置文件。
该servlet的基本URL为:
1 2 3 |
<b>http://您的域:端口/显示名称/网址模式/ 路径_from_rest_class</b> |
该Servlet分析传入的HTTP请求,并根据请求选择正确的类和方法。该选择基于类和方法中提供的注释。
让’请参见Java中的estest Web服务示例。
先决条件:
- 爪哇 SE 6
- 从此位置下载Jersey文件的zip – //jersey.java.net/download.html
- Eclipse IDE
1)打开月食。
2)新建 动态网页项目 命名“RESTfulWebService示例”
3)现在转到下载jersey的位置,然后转到jersey-archive-1.17->lib
folder.you可以拥有所有jar,但是现在您可以复制以下jar
- 如m-3.1
- 球衣-client-1.17
- 球衣核心1.17
- 泽西服务器1.17
- 球衣-servlet-1.17
- jsr311-api-1.1.1
Paste all above copied jars to 网页内容->WEB-INF->lib
单击Java Build 路径,然后单击添加jar,如上图所示。
去项目->WebContent->WEB-INF->lib并选择所有罐子,然后单击“确定”。
单击确定。Jerseyjars添加到类路径。
4)创建名为“org.arpit.javapostsforlearning.webservice”
5)创建 脚ToInchAndInchToFeetConversionService.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
包 组织.Arpit.爪哇postsforlearning.网页服务; / ** * @作者Arpit Mandliya * / 进口 爪哇x.ws.rs.得到; 进口 爪哇x.ws.rs.路径; 进口 爪哇x.ws.rs.路径参数; 进口 爪哇x.ws.rs.产生; 进口 爪哇x.ws.rs.核心.媒体类型; @路径(“转换服务”) 上市 类 脚ToInchAndInchToFeetConversionService { @得到 @路径(“ / 英寸ToFeet / {i}”) @产生(媒体类型.TEXT_XML) 上市 串 convertInchToFeet(@路径参数(“一世”) 整型 i) { 整型 英寸=i; 双 脚 = 0; 脚 =(双) 英寸/12; 返回 "<InchToFeetService>" + "<Inch>" + 英寸 + "</Inch>" + "<Feet>" + 脚 + "</Feet>" + "</InchToFeetService>"; } @路径(“ / 脚ToInch / {f}”) @得到 @产生(媒体类型.TEXT_XML) 上市 串 convertFeetToInch(@路径参数(“F”) 整型 f) { 整型 英寸=0; 整型 脚 = f; 英寸 = 12*脚; 返回 "<FeetToInchService>" + "<Feet>" + 脚 + "</Feet>" + "<Inch>" + 英寸 + "</Inch>" + "</FeetToInchService>"; } } |
@Path(/ your_path_at_class_level) :将路径设置为基本URL + / your_path_at_class_level。基本URL基于您的应用程序名称,servlet和来自web.xml的URL模式” 配置uration file.
@Path(/ your_path_at_method_level):设置基本URL的路径+ / your_path_at_class_level + / your_path_at_method_level
@Produces(MediaType.TEXT_XML [,more-types]):@Produces定义由@GET注释的方法传递哪种MIME类型。在示例文字中(“text/XML”) is produced.
@PathParam: 用于将URL中的值注入到方法参数中。通过这种方式,您可以在convertFeetToInch方法中注入英寸并将其转换为英尺。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<!- ?XML格式文件 版="1.0" 编码方式=“ UTF-8”?- > <?XML格式文件 版="1.0" 编码方式=“ UTF-8”?> <网路-应用程式 XML格式文件ns:si="http://www.w3.org/2001/XMLSchema-instance" XML格式文件ns="http://java.sun.com/xml/ns/javaee" XML格式文件ns:网路="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" si:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" ID=“ WebApp_ID” 版="2.5"> <显示-名称>休息fulWebService示例</显示-名称> <小服务程序> <小服务程序-名称>泽西岛 休息 服务</小服务程序-名称> <小服务程序-类>com.太阳.球衣.精神.容器.小服务程序.Servlet容器</小服务程序-类> <在里面-参数> <参数-名称>com.太阳.球衣.配置.属性.包装</参数-名称> <参数-值>组织.Arpit.爪哇postsforlearning.网页服务</参数-值> </在里面-参数> <加载-上-启动>1</加载-上-启动> </小服务程序> <小服务程序-映射> <小服务程序-名称>泽西岛 休息 服务</小服务程序-名称> <网址-模式>/休息/*</网址-模式> </小服务程序-映射> </网路-应用程式> |
在上面,放入您的Web服务包。
如果您看到Web服务信息页面,则说明您已完成。
创建一个Restful Web 服务客户端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
包 组织.Arpit.爪哇postsforlearning.网页服务.客户; 进口 爪哇x.ws.rs.核心.媒体类型; 进口 com.太阳.球衣.api.客户.客户; 进口 com.太阳.球衣.api.客户.客户端响应; 进口 com.太阳.球衣.api.客户.Web资源; 进口 com.太阳.球衣.api.客户.配置.客户端配置; 进口 com.太阳.球衣.api.客户.配置.DefaultClientConfig; 上市 类 转换次数ServiceClient { 静态的 最后 串 休息_URI = “ http:// localhost:8080 / 休息fulWebService示例”; 静态的 最后 串 INCH_TO_FEET = “ / 转换次数Service / 英寸ToFeet /”; 静态的 最后 串 FEET_TO_INCH = “ / 转换次数Service / 脚ToInch /”; 上市 静态的 虚空 主要(串[] args) { 整型 英寸=12; 整型 脚=2; 客户端配置 配置 = 新 DefaultClientConfig(); 客户 客户 = 客户.创造(配置); Web资源 服务 = 客户.资源(休息_URI); Web资源 addService = 服务.路径(“休息”).路径(INCH_TO_FEET+英寸); 系统.出.打印(“ INCH_TO_FEET响应:” + 得到Response(addService)); 系统.出.打印(“ INCH_TO_FEET输出为XML:” + 得到OutputAsXML(addService)); 系统.出.打印(“ - ----------------------------------------------- -“); Web资源 子服务 = 服务.路径(“休息”).路径(FEET_TO_INCH+脚); 系统.出.打印(“ FEET_TO_INCH响应:” + 得到Response(子服务)); 系统.出.打印(“ FEET_TO_INCH输出为XML:” + 得到OutputAsXML(子服务)); 系统.出.打印(“ - ----------------------------------------------- -“); } 私人的 静态的 串 得到Response(Web资源 服务) { 返回 服务.接受(媒体类型.TEXT_XML).得到(客户端响应.类).toString(); } 私人的 静态的 串 得到OutputAsXML(Web资源 服务) { 返回 服务.接受(媒体类型.TEXT_XML).得到(串.类); } } |
运行以上程序
输出:
1 2 3 4 5 6 7 8 |
INCH_TO_FEET 响应: 得到 http:// localhost:8080 / 休息fulWebService示例 / 休息 / 转换次数Service / 英寸ToFeet / 12返回的响应状态为200 OK INCH_TO_FEET 输出量 如 XML格式: 121.0 - - - - - - - - - - - - - - - - - - - - - - - - - - FEET_TO_INCH 响应: 得到 http:// localhost:8080 / 休息fulWebService示例 / 休息 / 转换次数Service / 脚ToInch / 2返回的响应状态为200 OK FEET_TO_INCH 输出量 如 XML格式: 224 - - - - - - - - - - - - - - - - - - - - - - - - - - |
Comments
感谢您使用此tuto的质量,当我第一次做tp时,我被阻止了,xml(WADL)标记没有显示在浏览器中,经过数小时的测试,我下载了源代码,我意识到有必要在退货服务级别添加xml标签,这在本教程中不是事实
还有我的经验,根据唐–感谢这些伟大的兔兔,Arpit !!
非常好,诚实的第一篇文章
谢谢。正如Pramod所说,这是对我真正有用的第一个教程。非常感谢您抽出宝贵时间分享此内容。