一、 建立web project
新建一个web project,取名cxf_bigdata
目录结构如下:
添加所需Jar包:
二、 继承类,重写方法
cxf 与servlet集成需要继承CXFNonSpringServlet类,重写loadBus(ServletConfig sc)方法,如下图所示:
三、 配置web.xml
四、 创建pojo类BigData
五、 创建接口BigDataService
六、 创建接口实现类BigDataServiceImpl
endpointInterface为接口路径,serviceName可以随便设置,是WSDL的显示service名字。(WSDL是WebServiceDocument Location的简称,即WebService文档位置的意思)
serviceName可以随意更改
如若不写serviceName,默认为实现类+service
@WebService的serviceName可以用来指定service的名称,默认情况下如果Service是通过Endpoint.publish()方法发布的则serviceName为实现类的简单名称+Service(如BigDataServiceImplService),如果是通过JaxWsServerFactoryBean的create方法发布的则为接口的简单名称+Service(如BigDataServiceService)。name属性可以用来指定service对应的portName,默认情况下如果Service是通过Endpoint.publish()方法发布的则portName为实现类的简单名称+Port(如BigDataServiceImplPort),如果是通过JaxWsServerFactoryBean的create方法发布的则为接口的简单名称+Port(如BigDataServicePort)。
七、 发布接口
在WebServiceServlet类的loadBus方法中编写发布方法,有两种方式发布接口——第一种使用jax-ws方式,第二种使用cxf方式,如图所示:
这里设置的address即为访问浏览器输入的接口名字。
八、 浏览器访问接口
在浏览器输入http://localhost:8080/cxf_bigdata/webservice/bigDataService?wsdl,出现如下图所示内容,表示发布成功:
九、 生成客户端
新建一个web project,取名bigdata_client,
1. 选择myeclipse状态栏的new web service图标,如图所示:
2. 点击旁边倒三角,选择new web service client,出现如下图界面:
选择刚才新建项目名称,选择JAX-WS,点击next
3. 将在浏览器输入的wsdl地址复制到下图的wdsl url处,点击next,进行校验:
4. 校验通过,点击finish。
5. 看一下现在的项目目录结构
这些都是自动生成的,
6. 新建测试类Test
右击run as——》Javaapplication,运行成功。