webService-apache CXF示例

  1. 下载开发包   

    官网:cxf.apache.org

  2. 简单demo 

    第一步:创建动态web项目

    第二步:导入CXF相关jar包

  3.  

    第三步:在web.xml中配置CXF框架提供的一个Servlet

      <!-- 配置CXF框架提供的Servlet -->   ctrl + shift + t 找 CXFservlet  可找到完整类路径

      <servlet>

             <servlet-name>cxf</servlet-name>

             <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

             <!-- 通过初始化参数指定CXF框架的配置文件位置 -->

             <init-param>

                         <param-name>config-location</param-name>

                         <param-value>classpath:cxf.xml</param-value>

             </init-param>

      </servlet>

      <servlet-mapping>

             <servlet-name>cxf</servlet-name>

             <url-pattern>/service/*</url-pattern>

      </servlet-mapping>

  4.  

    第四步:根据classpath配置的路径  在 源码包下提供cxf.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">

                <!-- 引入CXF Bean定义如下,早期的版本中使用 -->

                <import resource="classpath:META-INF/cxf/cxf.xml"/>

                <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>

                <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>

    </beans>

  5.  

    第五步:开发一个接口和实现类

     
  6.  

    第六步:在cxf.xml中注册服务

客户端的开发

注意 :  客户端的调用和 服务端无技术联系 (及不用关心服务端使用的是语言 或是什么框架)

 

  • l  方式一:使用jdk提供的wsimport命令生成本地代码完成调用

wsimport -keep -d E:\generated\d -s E:\generated\s -p com.webservice -verbose http://xxx.xxx.xxx.xxx/xxx/xxx.xxx?wsdl

-keep:是否生成java源文件

-d:指定.class文件的输出目录

-s:指定.java文件的输出目录

-p:定义生成类的包名,不定义的话有默认包名

-verbose:在控制台显示输出信息

-extension:使用扩展来支持SOAP1.2

最后跟的是url路径
  • l  方式二:使用CXF提供的方式(重点)

      第一步:创建Java项目并导入CXF相关jar包

      第二步:使用wsimport或者CXF提供wsdl2java生成本地代码,只需要生成接口文件

 

第三步:将接口文件复制到项目中   只需复制接口文件即可(有个xxx.class的地方报错,直接删除即可)

 

 

 

第四步:提供spring配置文件,注册客户端代理对象

        

        其中的address是 访问服务的wsdl的网址  去掉最后的?wsdl即可。

   注:  这里涉及到一个 项目在开发中 和 生产中的 各种 测试, 仿真,   正式  等等的 不通环境 , 如果服务端的代码没有改动(名称空间也就是发布服务的类的位置, 和方法以及参数等等的改动)  只需要修改这里的 ip 和 端口号即可.  不需要重新生成客户端代码.  在该配置文件里分别配置 不同地址的 客户端配置 然后注释掉, 需要用到那个环境 就 放开注释即可.(2018/9.22/19:46)

 

第五步:读取spring配置文件,创建spring工厂,从工厂中获取代理对象,实现远程调用

        

 

附录: 

 cxf访问路径的详细介绍: 

服务端配置 图解: 

 1.  在web.xml中 配置cxf提供的servlet -->

2.  cxf服务端 cxf.xml文件的配置(注册服务):

客户端配置图解:

1.客户端spring配置文件的配置 内容及 客户端调用的示例:

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值