文档章节

使用cxf-codegen-plugin实现WebServices客户端

lyobo
 lyobo
发布于 2016/11/09 16:23
字数 358
阅读 33
收藏 1

WebServices服务搭建参见:使用CXF搭建WebServices服务端


###使用cxf-codegen-plugin实现WebServices客户端

1 创建maven工程

添加cxf-codegen-plugin,在<wsdlOption>选项中添加wsdl地址

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.liubo</groupId>
	<artifactId>text-cxf-client</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.7.2</version>
				<configuration>
					<forkMode>once</forkMode>
					<argLine>-Dfile.encoding=UTF-8</argLine>
					<systemProperties>
						<property>
							<name>net.sourceforge.cobertura.datafile</name>
							<value>target/cobertura/cobertura.ser</value>
						</property>
					</systemProperties>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.cxf</groupId>
				<artifactId>cxf-codegen-plugin</artifactId>
				<version>2.7.3</version>
				<executions>
					<execution>
						<id>generate-sources</id>
						<phase>generate-sources</phase>
						<configuration>
							<sourceRoot>${project.build.sourceDirectory}</sourceRoot>
							<encoding>UTF-8</encoding>
							<wsdlOptions>
								<wsdlOption>
									<wsdl>http://localhost:8080/test-cxf/HelloWS?wsdl</wsdl>
								</wsdlOption>
							</wsdlOptions>
						</configuration>
						<goals>
							<goal>wsdl2java</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

</project>

2 执行maven构建(或自动构建),maven会自动生成相应的WebServices客户端代码

例如HelloWebService

package com.liubo.test.cxf.service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;

/**
 * This class was generated by Apache CXF 2.7.3
 * 2016-04-28T18:53:56.903+08:00
 * Generated source version: 2.7.3
 * 
 */
@WebService(targetNamespace = "http://service.cxf.test.liubo.com/", name = "HelloWebService")
@XmlSeeAlso({ObjectFactory.class})
public interface HelloWebService {

    @WebResult(name = "return", targetNamespace = "")
    @RequestWrapper(localName = "sayHello", targetNamespace = "http://service.cxf.test.liubo.com/", className = "com.liubo.test.cxf.service.SayHello")
    @WebMethod
    @ResponseWrapper(localName = "sayHelloResponse", targetNamespace = "http://service.cxf.test.liubo.com/", className = "com.liubo.test.cxf.service.SayHelloResponse")
    public java.lang.String sayHello(
        @WebParam(name = "text", targetNamespace = "")
        java.lang.String text
    );
}

3 调用WebService,如下

package com.liubo.test.cxf.client;

import com.liubo.test.cxf.service.HelloWebService;
import com.liubo.test.cxf.serviceimpl.HelloWS;

public class Client {

	public static void main(String[] args) {
		
		HelloWS factory = new HelloWS();

        HelloWebService helloWebService = factory.getHelloWebServiceImplPort();

        System.out.println(helloWebService.sayHello("Libra"));
	}
}

执行成功,得到如下结果

hello Libra, welcome to the real world

© 著作权归作者所有

lyobo
粉丝 3
博文 5
码字总数 2283
作品 0
朝阳
程序员
私信 提问
Apache CXF 和 Spring 开发 Web Service 1

正文 为什么使用CXF 本文段摘录自 http://www.ibm.com/developerworks/cn/webservices/ws-pojo-springcxf/index.html Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务...

洋葱94
2015/12/04
268
0
[HELLO WORLD] 用CXF创建Web Service

SERVER 1.新建一个maven web 工程,加入cxf依赖 <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId><version>${cxf.version}</version>/depende......

RegnoiX
2014/04/13
126
0
webservice开发遇到点问题请教下打手

做了一个webservice接口,在测试接口调用的一直调用不到。 WSDL - - - - - - - 调用代码 String endpoint = "http://192.168.0.104:8080/topflames-jmoaxt/webservice/oaSendDocumentWebServ......

makubex198
2018/07/29
191
1
使用CXF开发RestFul WebService问题解决方案

最近在项目中,因为几个系统自己需要数据交换,所以采用进来都比较流行的RestFul风格WebService,实现框架采用apache的cxf,apache的东西一直以来都是比较的好用,回话少说,进入正题。 首先...

xdev
2013/05/18
11.7K
3
Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务

选框架犹如选媳妇,选来选去,最后我还是选了“丑媳妇(CXF)”,为什么是它?因为 CXF 是 Apache 旗下的一款非常优秀的 WS 开源框架,具备轻量级的特性,而且能无缝整合到 Spring 中。 其实...

黄勇
2014/07/02
13.6K
45

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部