cxf的使用以及与SSH的整合

    经历过一小段忙碌的时间,终于有时间开始整理项目中曾遇到的技术难点,并不是什么新颖的技术难点,只是自己在这样方面所了解的不健全或者是没有了解透彻,现在都抽时间进行整理。

    首先就是需要在ssh的系统中整合webService作为客户端,当时在网络上看到好多资料,道理都是对的,但是给出的包都是却三少俩的,结果自己测试了好长时间才测试出完整的包。

    下面是cxf(3.0.9)整合ssh时所需要的jar,分享链接:http://pan.baidu.com/s/1c1QELag

    

    接下来是整合ssh所需要的全部jar,分享链接:http://pan.baidu.com/s/1c1JTlQw

    

    

     

    以上就是在使用前的包,有关与ssm整合,还未进行测试。

    接下来说一下cfx在ssh中的使用,本次用的是注解开发:

    首先是需要在web.xml中配置cxf servlet:

   

<!-- cxf servlet -->
    <servlet>
       <servlet-name>cxfServlet</servlet-name>
       <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    </servlet>
    <servlet-mapping>
       <servlet-name>cxfServlet</servlet-name>
       <url-pattern>/ws/*</url-pattern>
    </servlet-mapping> 

  上面代码中主要是<url-pattern>,该项配置的是webservice服务访问的父路径,也就是访问的时候需要ws/....,后面会给出详细的路径。

 

    接下来是一个cxf与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"
    xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                            http://www.springframework.org/schema/beans/spring-beans.xsd
                            http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
                            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
                            http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">

<!--
xmlns:cxf="http://cxf.apache.org/core"  
 发布cxf服务
address:是webservice接口路径
webservice地址是:http://localhost:8080/ws/myscxf
/ws/是在web.xml配置的cxf的servlet的拦截路径

serviceClass:就是 portType(接口类型)
--> <jaxws:server address="/mycxf" serviceClass="cn.esign.service.UnitService"> <!-- webservice服务由serviceBean指定的service进行处理 --> <jaxws:serviceBean> <!-- ref引用ioc容器中bean的id --> <ref bean="unitService"/> </jaxws:serviceBean> </jaxws:server> </beans>

    上面代码的注释中都有详细说明,只是需要注意一点,如果此处用的是注解开发,那么应该在实现UnitService接口的实现类的类名上应该加一个注解@Service("unitService"),如果用的是在配置文件中进行bean的管理,那么需要注意该bean的id。

    在上面的都配置好之后,就可以在UnitService接口名上加注解@WebService,那么该接口下的方法都将以会以服务的形式暴露出来,启动之后就可以使用了,启动之后可以输入http://localhost:8080/项目名/ws/mycxf?wsdl进行访问,如果配置成功,那么网页上显示的将是一些xml代码。

  

    客户端方面:

        如果使用的是Java作为客户端,那么可以通过命令直接生成:

                1、首先启动客户端

       2、在命令行界面进入工作控件的src目录下

         3、输入命令   wsdl2java   -encoding utf-8 http://localhost:8080/项目名/ws/mycxf?wsdl

    

 

posted @ 2017-04-25 17:01  maysky  阅读(2009)  评论(0编辑  收藏  举报