ssm+cxf restful Webservice

小灰灰 2022-05-25 02:44 299阅读 0赞

前言

之前写过一篇整合ssm+cxf不过是soap webservice,另一种webservice的实现是Restful风格的。

SOAP Webservice和Restful Webservice的使用,首先需要理解就是SOAP偏向于面向活动,有严格的规范和标准,包括安全,事务等各个方面的内容,同时SOAP强调操作方法和操作对象的分离,有WSDL文件规范和XSD文件分别对其定义。而REST强调面向资源,只要我们要操作的对象可以抽象为资源即可以使用REST架构风格。

开发环境

Eclipse+jdk1.8+tomcat

所需jar包

ssm框架的jar包和

  1. ![20180509124407348][]![20180509124423959][]

示例

20180509124830386

web.xml

  1. <!-- 配置cxf的核心控制器 -->
  2. <servlet>
  3. <servlet-name>CXFServlet</servlet-name>
  4. <servlet-class>
  5. org.apache.cxf.transport.servlet.CXFServlet
  6. </servlet-class>
  7. <load-on-startup>2</load-on-startup>
  8. </servlet>
  9. <!-- 所有来自/webservice/*的请求交给cxf处理 -->
  10. <servlet-mapping>
  11. <servlet-name>CXFServlet</servlet-name>
  12. <url-pattern>/webservice/*</url-pattern>
  13. </servlet-mapping>

spring-dao.xml添加引用

  1. <import resource="classpath:spring/apache-cxf.xml"/>

apacha-cxf.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
  7. http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">
  8. <context:component-scan base-package="com.XX.dao" />
  9. <import resource="classpath*:META-INF/cxf/cxf.xml" />
  10. <jaxrs:server id="restServiceContainer" address="/">
  11. <jaxrs:providers>
  12. <ref bean="jacksonProvider" />
  13. </jaxrs:providers>
  14. <jaxrs:extensionMappings>
  15. <entry key="json" value="application/json" />
  16. <entry key="xml" value="application/xml" />
  17. </jaxrs:extensionMappings>
  18. <jaxrs:serviceBeans>
  19. <ref bean="testUserService" />
  20. </jaxrs:serviceBeans>
  21. <jaxrs:inInterceptors>
  22. <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
  23. </jaxrs:inInterceptors>
  24. <jaxrs:outInterceptors>
  25. <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
  26. </jaxrs:outInterceptors>
  27. </jaxrs:server>
  28. <bean id="jacksonObjectMapper"
  29. class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"></bean>
  30. <bean id="jacksonProvider"
  31. class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
  32. <property name="mapper" ref="jacksonObjectMapper" />
  33. </bean>
  34. </beans>

entity.java 一定要加注解

  1. import java.util.Date;
  2. import javax.xml.bind.annotation.XmlRootElement;
  3. @XmlRootElement(name = "baseUser")
  4. public class TBaseUser {
  5. private String userId;
  6. private String userName;
  7. private String identityCode;
  8. private String password;
  9. private String realName;
  10. private String nickName;
  11. private String imageUrl;
  12. private String userWalletAddress;
  13. private String candyWalletAddress;
  14. private String eMail;
  15. private String phoneNumber;
  16. private String exchangeUserId;
  17. private Date creatTime;
  18. private Date updateTime;
  19. private Boolean isDelete;
  20. public String getUserId() {
  21. return userId;
  22. }
  23. public void setUserId(String userId) {
  24. this.userId = userId == null ? null : userId.trim();
  25. }
  26. public String getUserName() {
  27. return userName;
  28. }
  29. public void setUserName(String userName) {
  30. this.userName = userName == null ? null : userName.trim();
  31. }
  32. public String getIdentityCode() {
  33. return identityCode;
  34. }
  35. public void setIdentityCode(String identityCode) {
  36. this.identityCode = identityCode == null ? null : identityCode.trim();
  37. }
  38. public String getPassword() {
  39. return password;
  40. }
  41. public void setPassword(String password) {
  42. this.password = password == null ? null : password.trim();
  43. }
  44. public String getRealName() {
  45. return realName;
  46. }
  47. public void setRealName(String realName) {
  48. this.realName = realName == null ? null : realName.trim();
  49. }
  50. public String getNickName() {
  51. return nickName;
  52. }
  53. public void setNickName(String nickName) {
  54. this.nickName = nickName == null ? null : nickName.trim();
  55. }
  56. public String getImageUrl() {
  57. return imageUrl;
  58. }
  59. public void setImageUrl(String imageUrl) {
  60. this.imageUrl = imageUrl == null ? null : imageUrl.trim();
  61. }
  62. public String getUserWalletAddress() {
  63. return userWalletAddress;
  64. }
  65. public void setUserWalletAddress(String userWalletAddress) {
  66. this.userWalletAddress = userWalletAddress == null ? null : userWalletAddress.trim();
  67. }
  68. public String getCandyWalletAddress() {
  69. return candyWalletAddress;
  70. }
  71. public void setCandyWalletAddress(String candyWalletAddress) {
  72. this.candyWalletAddress = candyWalletAddress == null ? null : candyWalletAddress.trim();
  73. }
  74. public String geteMail() {
  75. return eMail;
  76. }
  77. public void seteMail(String eMail) {
  78. this.eMail = eMail == null ? null : eMail.trim();
  79. }
  80. public String getPhoneNumber() {
  81. return phoneNumber;
  82. }
  83. public void setPhoneNumber(String phoneNumber) {
  84. this.phoneNumber = phoneNumber == null ? null : phoneNumber.trim();
  85. }
  86. public String getExchangeUserId() {
  87. return exchangeUserId;
  88. }
  89. public void setExchangeUserId(String exchangeUserId) {
  90. this.exchangeUserId = exchangeUserId == null ? null : exchangeUserId.trim();
  91. }
  92. public Date getCreatTime() {
  93. return creatTime;
  94. }
  95. public void setCreatTime(Date creatTime) {
  96. this.creatTime = creatTime;
  97. }
  98. public Date getUpdateTime() {
  99. return updateTime;
  100. }
  101. public void setUpdateTime(Date updateTime) {
  102. this.updateTime = updateTime;
  103. }
  104. public Boolean getIsDelete() {
  105. return isDelete;
  106. }
  107. public void setIsDelete(Boolean isDelete) {
  108. this.isDelete = isDelete;
  109. }
  110. }

service

  1. @Path("/user")
  2. public interface TestUserService {
  3. @GET
  4. @Path("/getUser")
  5. @Produces({ MediaType.APPLICATION_JSON,@GET
  6. @Path("/getUser")
  7. @Produces({ MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
  8. public List<TBaseUser> getAllUsers();MediaType.APPLICATION_XML })
  9. public List<TBaseUser> getAllUsers();
  10. }

serviceimpl

  1. @Named("testUserService")
  2. public class TestUserServiceimpl implements TestUserService{
  3. @Autowired
  4. private TBaseUserMapper tBaseUserMapper;
  5. public List<TBaseUser> getAllUsers(){
  6. TBaseUserExample example= new TBaseUserExample();
  7. List<TBaseUser> list=tBaseUserMapper.selectByExample(example);
  8. return list;
  9. }
  10. }

访问结果

访问http://localhost:8080/项目名/webservice/user/getUser?\_type=json,返回Json

  1. {"baseUser":[{"candyWalletAddress":"0x0686F106aD2194a7b012b18EC390F496042187B4","nickName":"测试","password":"123qwe","phoneNumber":18611112222,"userId":1},{"candyWalletAddress":"0x0686F106aD2194a7b012b18EC390F496042187B4","nickName":"ceshi","password":"ceshi1","phoneNumber":18831688664,"userId":2,"userName":"ceshi"}]}

或者http://localhost:8080/项目名/webservice/user/getUser?\_type=xml,返回XML

20180509131118397

参考链接:

https://www.cnblogs.com/zhuyiqizhi/p/6213502.html

https://blog.csdn.net/iamlake/article/details/51217303

发表评论

表情:
评论列表 (有 0 条评论,299人围观)

还没有评论,来说两句吧...

相关阅读