Spring4.1整合CXF3实现Webservice(一)


       前言

      cxf的spring配置方式有很多种,而且spring在更新,cxf也一直在更新,现在spring4已经很普遍了,当然要摒弃cxf2了。 如果你要用wsdl2java生成接口类这种方式我不提倡,假如你发布的接口换个服务器部署,你连class类都要改啊!本着less code less modify的原则,以下是我的分享。

开发环境:jdk7  、tomcat7、spring4.1.1 、hibernate4  、 cxf 3.1.5

服务端:

1、添加cxf的jar包

      我是在现有web项目的基础上增加webservice的,所以已经存在了一般web环境所需的jar包,下图红框的是我从cxf拷贝过来的新包,是我一个个测试出来的最少的必须的jar包:


   

 

>>>分享一篇很好很全面的cxf 缺包错误集锦:

http://blog.csdn.net/w1014074794/article/details/47862163  

 

 

2、编写接口类和实现类

package com.yourpackage.webservice;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface YourService  {
    
    	@WebMethod 
	public String yourMethod(yourParam...);
	
}
package com.yourpackage.webservice.impl;
……
import java.net.URLDecoder;
import javax.jws.WebService;

@WebService(endpointInterface = "com.yourpackage.webservice.YourService", serviceName = "YourWebService")
public class YourServiceImpl implements YourService {

    @Override
    public String yourMethod(yourParam...){
	……
    }	
}

3、 整合spring发布你的接口

<?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.0.xsd
        http://cxf.apache.org/jaxws
        http://cxf.apache.org/schemas/jaxws.xsd">

	<bean id="YourWebService"
		 class="com.yourpackage.webservice.impl.YourServiceImpl">
	</bean>
	<!--#yourWebService是和你的实现类上声明的serviceName一致 -->
	<!--id 同上面你声明的bean id -->
	<!--address 是web.xml上面配置的cxf匹配路径之后的路径,随便起命,但是访问时要一致-->
	<jaxws:endpoint id="YourWebService" implementor="#YourWebService"
		address="/YourService" />
</beans>    

4、在web.xml文件中增加cxf支持

 <!-- cxf服务-->
    <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> 

   路径可以随意设置的,现在这样写本机服务端跑起来的时候访问wsdl的地址是:

http://localhost:8080/yourProject/ws/YourService?wsdl

这里ws之后的/YourService就是上一步配置的address值

5、运行服务端,访问wsdl

           出现如下图这种xml格式的文档就说明发布成功:



  

至此接口已经发布完成了,关于webservice调用的方法请看下一篇:

 http://weilikk.iteye.com/blog/2317179

猜你喜欢

转载自weilikk.iteye.com/blog/2317179