加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

cxf发布webservice 简单使用步骤备忘

发布时间:2020-12-16 22:03:07 所属栏目:安全 来源:网络整理
导读:? ? ? ? ? ? ? ? 首先当然是下载cxf框架的jar包 我下的是3.0.3版本,将jar包拷贝到自己项目中的Lib 第一步:将cxf集成到我们的项目中去,配置web.xml,在xml文件中加入以下代码 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? servlet ?servlet-namecxf/

? ? ? ? ? ? ? ? 首先当然是下载cxf框架的jar包 我下的是3.0.3版本,将jar包拷贝到自己项目中的Lib


第一步:将cxf集成到我们的项目中去,配置web.xml,在xml文件中加入以下代码

?

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


? ? ? ? ? ?第二步:编写webservice接口

?注意在interface 和实现类中都要加@WebService 注解否则会出现代码不全调用不到的问题


? ? ? ? 第三步:接口书写完成就要配置发布配置文件了,将接口映射到url给第三方调用。在web-inf下面创建cxf-servlet.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"
?xmlns:soap="http://cxf.apache.org/bindings/soap"
?xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">


?<jaxws:server id="getZdxmlistService" ? ? ? ? ? ? ? ? //id随意起只要不跟其他的server重复就行
? serviceClass="com.tko.service.ZdService" ? ? ? ? ? //serviceClass表示接口类?
? address="/getZdxmlist"> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //address表示第三方访问的地址
? ?
? <jaxws:serviceBean>
??
? ?<bean class="com.tko.service.ZdServiceImpl" /> ?// 表示接口的实现类
? ?
? </jaxws:serviceBean>
??
?</jaxws:server>
?
</beans>


//如果要配置多个接口 可以继续添加jaxws:server


一切准备就绪,然后将项目部署到tomcat中去,访问http://localhost:8080/project/services/xxx?wsdl,出现xml页面

说明发布成功,在客户端就可以利用 cxf 工具 wsdl2java?http://localhost:8080/project/services/xxx?wsdl 生成客户端代码进行调用。



? ? ? ? ? ?cxf我感觉比axis2好用,axis2还要单独部署一个axis2.war包到tomcat中去才能使用,还有axis2不能传递自定义的复杂对象和list等,貌似只能传一维数组,如果要传

复杂对象还要进行一系列的复杂转换挺麻烦的,cxf可以传自定义对象,list,数组 貌似不能传map要进行相应的转换(新手勿喷,可能大神有更简便的方法)


PS: 假如需要调用接口的某个方法 需要返回两个数据类型,可以用json 或者map 搞定

JSONObject jo = new JSONObject();

jo.put("student",new Student());

jo.put("teacher",new Teacher());

return jo.toString(); ? ? ? ? ? 然后客户端再去解析json,通过get(key)把需要的对象拿出来使用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读