Spring集成Web Service服务

淡淡的烟草味﹌ 2022-01-06 13:21 385阅读 0赞

POM文件中加入cxf的依赖包

  1. <dependency>
  2. <groupId>org.apache.cxf</groupId>
  3. <artifactId>cxf-rt-frontend-jaxws</artifactId>
  4. <version>3.1.5</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.cxf</groupId>
  8. <artifactId>cxf-rt-frontend-jaxrs</artifactId>
  9. <version>3.1.5</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.apache.cxf</groupId>
  13. <artifactId>cxf-rt-transports-http</artifactId>
  14. <version>3.1.5</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>org.apache.cxf</groupId>
  18. <artifactId>cxf-rt-transports-http-jetty</artifactId>
  19. <version>3.1.5</version>
  20. </dependency>

在web.xml中配置请求方式

  1. <!--注册一个用于接收其他工程向本工程发送的webservice请求的请求接收器-->
  2. <servlet>
  3. <servlet-name>CXFServlet</servlet-name>
  4. <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
  5. <load-on-startup>1</load-on-startup>
  6. </servlet>
  7. <!--告诉其他工程什么样的请求是一个合法的请求-->
  8. <servlet-mapping>
  9. <servlet-name>CXFServlet</servlet-name>
  10. <url-pattern>/service/*</url-pattern>
  11. </servlet-mapping>

配置文件中配置webService的请求地址

  1. <!-- CXF的3.0版本以上 -->
  2. <import resource="classpath:META-INF/cxf/cxf.xml"/>
  3. <jaxws:endpoint id="userService" address="/userService" implementorClass="org.spring.mvc.serviceImpl.UserServiceImpl">
  4. <jaxws:implementor ref="userServiceImpl"/>
  5. </jaxws:endpoint>

代码

  1. package org.spring.mvc.service;
  2. import javax.jws.WebService;
  3. /** * @author yanyugang * @description ${todo} * @date 2019-06-25 11:38 */
  4. @WebService
  5. public interface UserService {
  6. String sayHello(String name);
  7. }
  8. package org.spring.mvc.serviceImpl;
  9. import org.spring.mvc.service.UserService;
  10. import org.springframework.stereotype.Service;
  11. /** * @author yanyugang * @description ${todo} * @date 2019-06-25 11:38 */
  12. @Service
  13. public class UserServiceImpl implements UserService {
  14. public String sayHello(String loginName){
  15. return "Hello," + loginName;
  16. }
  17. }

部署

项目部署后,服务即可用(类似于dubbo生产者的概念),可供不同编程语言的消费者调用。

编写客户端访问服务

  1. package org.spring.mvc;
  2. import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
  3. import org.spring.mvc.service.UserService;
  4. /** * @author yanyugang * @description WSDL文档地址:http://localhost:8081/service/userService?wsdl * @date 2019-06-25 11:46 */
  5. public class TestWebService {
  6. public static void main(String[] args) {
  7. JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
  8. factoryBean.setServiceClass(UserService.class);
  9. factoryBean.setAddress("http://localhost:8081/service/userService");
  10. UserService userService = (UserService)factoryBean.create();
  11. String str= userService.sayHello("tianming");
  12. System.out.println("str==="+str);
  13. }
  14. }

发表评论

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

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

相关阅读