cxf整合Spring框架进行服务端开发,并且通过cxf生成客户端代码进行调用

1、服务端:

      a. 以Tomcat发布WebService服务为例,首先添加jar包,这里我使用的maven,所以添加maven依赖就好了

        <dependency> 
            <groupId>org.apache.cxf</groupId> 
            <artifactId>cxf-rt-frontend-jaxws</artifactId> 
            <version>3.1.10</version> 
        </dependency> 
        <dependency> 
            <groupId>org.apache.cxf</groupId> 
            <artifactId>cxf-rt-transports-http</artifactId> 
            <version>3.1.10</version> 
        </dependency>

      b.写好WebService接口及其实现类,比如com.test.service.HelloService(接口) 、com.test.service.impl.helloServiceImpl(实现)

      c.在web.xml中添加Servlet

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

     d.这里我使用的Spring4.0以上版本,cxf版本是3.1.10版本,经验证,在Spring配置文件中只需要加入如下     

    <jaxws:endpoint id="helloService" implementor="com.test.service.impl.helloServiceImpl" address="/helloService">
       <jaxws:binding>
           <soap:soapBinding version="1.2"/>
       </jaxws:binding>
    </jaxws:endpoint>
     e.启动Tomcat,在地址栏输入 http://localhost:8080/工程名称/webservice即可以看到WebService发布列表

2.cxf生成WebService客户端代码并调用

    a.在官网上下载apache-cxf-3.1.10.zip,解压至某一路径,比如D盘D:\apache-cxf-3.1.10,然后添加环境变量,CXF_HOME=D:\apache-cxf-3.1.10

  b.在Path后面加上 %CXF_HOME%/bin;

  c.在cmd命令中输入wsdl2java,如果有提示usage,就表明配置成功

  d.然后再命令行输入wsdl2java -p 客户端包名(比如com.test.webservice) -d E:\test\webserviceclient\src WSDL地址(比如http://localhost:8080/client/helloService?wsdl),之后回车

  e.在客户端路径刷新下,会看到生成的代码,如果想要调用服务端,找到那个以Port_client结尾的那个类,程序里面已经写好了一个main方法,只需要我们将参数赋为实际的值,然后启动程序即可调用

      

猜你喜欢

转载自blog.csdn.net/lichuangcsdn/article/details/77921033