记SpringMVC整合cxf发布webservices服务【留档】

记SpringMVC整合cxf发布webservices服务【留档】

记SpringMVC整合cxf发布webservices服务【留档】

网络查询的发现大部分有遗漏不全,或不可用。整合多个后才成功,在这留个档记录下。
1.所需jar包 :jar包链接
也可以网上找
这些是我验证成功的jar包,并未验证是否是最小集合
2、代码 添加
接口:注解形式
接口实现类
在这里插入图片描述
3、配置
修改web.xml文件,在末尾增加配置<servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/webservice/*</url-pattern> </servlet-mapping>
新增spring-cxf.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd" >
 
   <import resource="classpath:META-INF/cxf/cxf.xml"/> 
   
    <!-- 注意:serviceClass为接口类为实现类 -->
    <jaxws:server serviceClass="com.just.soft.webservice.impl.WebServiceImpl" address="/process"></jaxws:server>
</beans>

在web.xml中引入spring-cxf.xml文件(地址以实际地址为准)
在这里插入图片描述
在这里插入图片描述
然后可以启动了
在这里插入图片描述
访问地址:http://localhost:8080/Xxxx/webservice/process?wsdl
在这里插入图片描述
补充:
CXF支持 SOAP1.1 SOAP1.2协议
SOAP协议分为两个版本 1.1 1.2,默认支持1.1
需要配置在impl实现类中添加:

@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)
public class WebServiceImpl xxxx{xxx}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要在Spring项目中引入CXF框架的依赖。在pom.xml文件中加入如下代码: ```xml <!-- CXF框架 --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-bundle-jaxrs</artifactId> <version>3.1.6</version> </dependency> ``` 接下来,需要在Spring的配置文件中配置CXF框架。在applicationContext.xml文件中加入如下代码: ```xml <!-- 配置CXF框架 --> <jaxrs:server id="restContainer" address="/"> <jaxrs:serviceBeans> <ref bean="userService"/> </jaxrs:serviceBeans> <jaxrs:providers> <ref bean="jsonProvider"/> </jaxrs:providers> </jaxrs:server> <bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.json.JSONProvider"/> <bean id="userService" class="com.example.service.UserServiceImpl"/> ``` 其中,`userService`是实现了WebService接口的实现类,`jsonProvider`是用于处理JSON格式数据的提供者。 最后,在web.xml中配置CXFServlet和JSP的Servlet: ```xml <!-- CXF Servlet --> <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <!-- JSP Servlet --> <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>xpoweredBy</param-name> <param-value>false</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping> ``` 配置完成后,就可以在JSP页面中调用WebService接口了。例如: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://cxf.apache.org/jaxrs" prefix="cxf" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>WebService测试页面</title> </head> <body> <h1>WebService测试页面</h1> <form action="services/userService/getUser" method="POST"> ID:<input type="text" name="id"><br> <input type="submit" value="查询"> </form> <br> <c:if test="${not empty user}"> ID:${user.id}<br> Name:${user.name}<br> Age:${user.age}<br> </c:if> </body> </html> ``` 以上代码中,`form`标签的`action`属性指向了WebService接口的URL地址,`method`属性指定了请求方式为POST。在页面中填写ID后,点击查询按钮即可调用WebService接口并获取返回结果,结果会显示在页面上。 需要注意的是,在使用CXF框架开发WebService时,需要在接口中加入`@Path`、`@GET`、`@POST`等注解来定义URL地址和请求方式。例如: ```java @Path("/userService") public interface UserService { @GET @Path("/getUser/{id}") User getUser(@PathParam("id") String id); } ``` 以上代码中,`@Path`注解定义了接口的URL地址,`@GET`注解定义了请求方式为GET,`@PathParam`注解用于获取URL中的参数。在实现类中,需要使用`@Service`和`@Autowired`注解来定义服务和注入依赖。例如: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; public User getUser(String id) { return userDao.getUserById(id); } } ``` 以上代码中,`@Service`注解定义了服务,`@Autowired`注解注入了`UserDao`依赖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值