WebService--CXF与Spring的整合

mac2024-03-10  27

WebService--CXF与Spring的整合

前言 推荐几个WebService整理不错的博客 1.链接: https://www.cnblogs.com/roy-blog/p/7264057.html. 2.链接: https://www.cnblogs.com/zhanxiaoyun/p/7942902.html. 看完这两篇文章之后 自己动手做了一下 没有成功 可能是我的项目不是web项目的原因导致,所以结合上面两篇文章稍加改动了一下。

开始 1.准备jar包 jar包问题参考博客链接: https://blog.csdn.net/xfl4629712/article/details/79241301.

2.配置文件 web.xml里添加配置

<servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/ws/*</url-pattern> </servlet-mapping>

注: load-on-startup 后的数字正数值越大 优先级越低 url-pattern 后的是访问webService要跟的地址比如: http://192.168.0.111:8080/dxssly/ws/YourService

3.接口和实现类 1).创建接口和实现类 2).接口代码

@WebService public interface YouWebService{ @WebMethod public String getData() throws Exception; }

3).实现类代码

@WebService(name="YouWebService", endpointInterface="com.xxx.webService.YouWebService") public class YouWebServiceImpl implements YouWebService{ public String getData() throws Exception { //getData() 此方法中可以传参和不传参 看业务需要 //String result = "Hello World!"; //返回值应为字符串类型,如果是list 需转成JSON格式 List<Map<String,Object>> list = (List<Map<String,Object>>)dao.findListBySql(sql); //将list转换为json字符串 String result = JSONArray.fromObject(list).toString(); return result; } }

注:JSON这里需要依赖两个jar包 4)添加applicationContext配置文件 ①.创建applicationContext-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:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <!-- 此处id为 实现类中的name名称 --> <bean id="YouWebService" class="com.xxx.webService.impl.YouWebServiceImpl"> </bean> <!-- 此处id 随便起 address为web.xml配置文件中ws/后面跟的地址--> <jaxws:server id="YouService" serviceClass="com.xxx.webService.YouWebService" address="/YourService" > <jaxws:serviceBean> <!-- 要暴露的 bean 的引用 --> <!-- 此处bean为 上面bean注入的id --> <ref bean="YouWebService"/> </jaxws:serviceBean> </jaxws:server> </beans>

②.在applicationContext.xml中添加代码 扫描包和导入创建好的applicationContext-CXF.xml文件

<!-- 扫描包 --> <context:component-scan base-package="com.xxx.webService"/> <!-- 导入配置文件 --> <import resource="applicationContext-CXF.xml"/>

以上已经完成WebService 接下来就是测试 三种测试方式: 1.通过软件测试 SoapUI 软件下载和使用方法请百度 效果如下: 2.通过类进行测试 最上方的两个推荐链接中有讲解 此处不过多叙述 3.通过浏览器直接输入webService地址 http://192.168.0.111:8080/dxssly/ws/YourService?wsdl 此地址为本地测试地址

最新回复(0)