使用CXF实现webservice发布+spring
这是自己写的代码,只是为留个记录,仅供参考。
1,准备好相关jar包,不多说了。
2,使用myeclipse创建web项目,添加spring和cxf相关jar,在web.xml中配置spring和cxf.
?
3,写webservice服务接口,使用Annotation进行标注?
先了解各种类型的Annotation。
@WebService和@WebMethod是WSDL映射Annatotion。这些Annotation将描述Web Service的WSDL文档元素和Java源代码联系在一起。@SOAPBinding是一个绑定的annotation用来说明网络协议和格式。
?
1)、@WebService annotation的元素name,serviceName和targetNamespace成员用来描述wsdl:portType,wsdl:service,和targetNameSpace生成WebService中的WSDL文件。
2)、@SOAPBinding是一个用来描述SOAP格式和RPC的协议的绑定Annotation。
3)、@WebMethod Annotation的operationName成员描述了wsdl:operation,而且它的操作描述了WSDL文档中的SOAPAction头部。这是客户端必须要放入到SQAPHeader中的数值,SOAP 1.1中的一种约束。
4)、@WebParam Annotation的partName成员描述了WSDL文档中的wsdl:part。
5)、@WebResult Annotation的partName成员描述了wsdl:part用来返回WSDL文档的值。
?
?使用到了User类
?
?4.写webservice服务的实现类
?
?
?运行该代码后,可在浏览器正常访问 http://localhost:8082/HelloWorld?wsdl
?
2)整合到spring发布
在Spring的配置文件中,需要对服务进行配置:
在applicationContext.xml(Spring的配置文件)中需要引入CXF的XML Scheam 配置文件和cxf的资源文件?
配置后,部署到tomcat服务器,启动后访问 http://ip:port/appname/cxfservlet_url_pattern/address?wsdl
其中/cxfservlet_url_pattern 就是指在web.xml中配置CXFServlet的url-pattern中/*前面的部分,
而/address就是刚上面配置的jaxws:endpoint中的address值。
?
我的访问地址就是 http://localhost:8088/testcxf/webservices/HelloWorld?wsdl
?
6.写webservice客户端访问服务
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1 楼 phpxiaoxin 2010-12-23 很好。谢谢