转自 :
http://blog.chinaunix.net/u2/73798/showart_2002108.html
将wdl binder
http://service.test.com/替换为自己的namespace。
命令格式如下:
wsdl2java -b jaxb-binding-date.xml http://localhost:8080/cxfservice/services/XXXXX?wsdl
#########################################################
CXF wsdl2Java
[img]/admin/templates/default/images/right_line.gif" border="0" alt="" width="502" height="9[/img]
一. 简介
Apache CXF 是一个Service框架,他简化了Service的创建, CXF实现了JAX-WS2.0规范,并通过了JAX-WS2.0 TCK; CXF和Spring无缝集成;CXF支持多种传输协议(HTTP, JMS, Corba等), 支持多种Binding数据格式(SOAP,XML,JSON等), 支持多种DataBinding数据类型(JAXB, Aegis) 。CXF基于Interceptor的架构,使得整个框架非常易于扩展。
二. 如何发布并调用简单的web service实例
2.1.下载:apache-cxf-2.1.1
http://cxf.apache.org/download.html
2.2. 新建java project ,并加入apache-cxf-2.0.7\lib所有包,编写要发布的web service 接口和实现
import javax.jws.WebService;
@WebService
public interface HelloWorld {
public String sayHello(String text);
}
import javax.jws.WebService;
@WebService(endpointInterface="test.HelloWorld")
public class HelloWorldImpl implements HelloWorld {
public String sayHello(String text) {
return "Hello" + text ;
}
}
@WebService 注解表示是要发布的web 服务
name:用于Interface,属映射到wsdl:portType element的name属性。
targetNamespace:用于Interface和implement,如果不指定,缺省会使用包名倒序做为wsdl名空间。
serviceName:用于implement,表示wsdl服务名。
portName:用于implement,表示wsdl:port 的name属性。
endpointInterface:用于implement,指定Interface全名,包括包名。
2.3.发布web service
public class Server {
protected Server() throws Exception {
System.out.println("Starting Server");
HelloWorldImpl implementor = new HelloWorldImpl();
String address = "
http://localhost:9000/helloWorld";
Endpoint.publish(address, implementor);
}
public static void main(String args[]) throws Exception {
new Server();
System.out.println("Server ready...");
Thread.sleep(5 * 60 * 1000);
System.out.println("Server exiting");
System.exit(0);
}
}
运行后,在浏览器中输入
http://localhost:9000/helloWorld?wsdl将显示这个web service的wsdl.说明web service发布成功。
2.4.下面就开始创建一个客户端程序,访问这个web service, 同样新建java project ,并加入apache-cxf-2.0.7\lib所有包,由于CXF已经提供wsdl转化成java 的命令工具,所以创建一个build.xml,用来生成客户端程序。Bulid.xml内容如下:
<?xml version="1.0"?>
<project name="cxf wsdl2java" basedir=".">
<property name="cxf.home" location ="${basedir}/WebRoot/WEB-INF/"/>
<path id="cxf.classpath">
<fileset dir="${cxf.home}/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="cxfWSDLToJava">
<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
<arg value="-client"/>
<arg value="-d"/>
<arg value="src"/>
<arg value="http://localhost:9000/helloWorld?wsdl"/>
<classpath>
<path refid="cxf.classpath"/>
</classpath>
</java>
</target>
</project>
或者:
配置环境变量%CXF_HOME%=E:\WebService\CXF\apache-cxf-2.1.1\apache-cxf-2.1.1(以我的目录为例),并在PATH后加上;%CXF_HOME%\bin在cmd命令行中输入wsdl2java如果显示其用法表示配置好了。
输入:
wsdl2java -d src - client http://localhost:9000/helloWorld?wsdl 其作用上面的build.xml作用一样。
附加:wsdl2java用法:
wsdl2java -p com -d src -all aa.wsdl
-p 指定其wsdl的命名空间,也就是要生成代码的包名:
-d 指定要产生代码所在目录
-client 生成客户端测试web service的代码
-server 生成服务器启动web service的代码
-impl 生成web service的实现代码
-ant 生成build.xml文件
-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.
详细用法见:
http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html
2.5.调用web service
public class MyClient {
public static void main(String[] argv) {
HelloWorld hello = new HelloWorldImplService().getHelloWorldImplPort();
System.out.println(hello.sayHello("Tom") );
}
}
注意:运行时,要一定先要发布web sevice.
三. 参考资料
1.CXF 主页:
http://cxf.apache.org/
2. CXF中文讨论组:
http://groups.google.com/group/cxf-zh
3. Web service:
http://www.w3school.com.cn/webservices/index.asp
4. WSDL:
http://www.w3school.com.cn/wsdl/index.asp
5. SOAP:http://www.w3school.com.cn/soap/index.asp
分享到:
相关推荐
使用cxf wsdl2java生成webservice客户端命令
apache CXF wsdl2java工具使用说明
NULL 博文链接:https://hongyegu.iteye.com/blog/637103
wsdl2java源码建造状态 CXF客户端 介绍 有几个不同的插件可以使用 grails 来使用 SOAP Web 服务,但目前没有一个可以处理缓存端口引用的问题。 ws-client 插件可以工作,但它的局限性在于它如何创建和使用 wsdl。 它...
CXF提供的wsdl2java工具创建客户端的详细步骤
抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java(Throws Could not find main class: org.apache.axis.wsdl.WSDL2Java)。 添加本文的jar包压缩包解压出来的所有jar包到当前使用的java.exe 命令的lib目录下的ext...
wsdl2java源码Camel-CXF SOAP 客户端演示(使用 2 路 SSL) 此存储库包含一个示例 Camel-CXF 项目,该项目演示了使用 2 向 SSL(客户端身份验证)的客户端 SOAP 请求/回复。 入门 首先,将此存储库克隆到您的本地...
CXF后,并配置完成相关环境变量,通过wsdl2java生成对应的Java代码,实现方式有很多,这里推荐两种常用方式。 在拥有WSDL和XSD的目录,执行wsdl2java命令以后,将得到的Java代码拷贝至代码工程源代码路径 本例为...
apache-cxf将wsdl生成java文件
cxf java代码生成 wsdl文件 ,wsdl文件生成 java代码,相关博文: http://blog.csdn.net/dream_broken/article/details/35331949
wsdl2java源码零 XML 配置的 Spring Boot 和 CXF 集成 示例项目展示了在创建具有独立 Java 配置的 JAX-WS SOAP Web 服务时如何集成 Spring Boot 和 CXF。 如何运行: mvn spring-boot:run Web 服务将部署在: ...
wsdl2java源码sbt-cxf-wsdl2java 一个 sbt 插件,用于使用 cxf 从 WSDL 生成 java 工件 要求 快速开始 将插件添加到project/plugins.sbt : resolvers + = " Sonatype Repository " at " ...sbt-cxf-wsdl2java ...
wsdl2java源码Apache CXF 是一个开源服务框架,可帮助使用前端编程 API(如 JAX-WS)构建和开发服务。 在本教程中,我们将了解如何将 CXF 与 Spring Boot 集成以构建和运行 Hello World SOAP 服务。 在整个示例中,...
注意: 1.如果想学习java优先请...2.包含一个eclipse工程以及一个ppt,ppt详细说明了实现的步骤。 3.设计中重点考察了schema validate的配置与实现,后续更高级的相关知识敬请关注 http://blog.csdn.net/harrison2010
NULL 博文链接:https://jeooo-li.iteye.com/blog/471745
java2ws 为 wsdl 生成服务,这些在 pom.xml 中配置 注意:服务项目请参考此链接 要测试此应用程序,请检查服务项目(链接上方)并运行该服务。 要记住的要点 用于客户端代码生成的 pom.xml <groupId>org.apache...
wsdl2java源码原作者注 该插件不再由其创建者维护。 这个存储库只是一个分支,将被动维护以跟上我依赖它的项目。 wsdl2java gradle 插件 // TODO 采用自述文件 用于从 wsdl 生成 java 的 Gradle 插件,在引擎盖下...
利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 Java实现登陆验证调用 压缩包里包括需要的所有文件,供需要的同学使用 1.apache-cxf-3.3.7 2.SoapUI 5.4.0-EB 3.生成代码的教程 4.获取service调用的...
wsdl2java gradle插件 用于在wsdl中生成Java的Gradle插件,在后台使用cxf,并使用与来自apache-cxf的maven wsdl-2-java插件相同的选项。 可从Bintray下载插件二进制文件: ://bintray....
wsdl2java源码wsdl 到存根生成 从 wsdl 生成存根的项目 生成客户端存根 添加以下依赖项以从 wsdl 文件创建存根 org.apache.cxf cxf 核心 3.1.4 在 pom.xml 中添加以下代码以生成客户端存根 org.apache.cxf cxf-...