一. 简介
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 工具使用详解 #### 一、Apache CXF 概述 Apache CXF 是一个高性能、轻量级的开源框架,用于构建和使用基于 SOAP 和 REST 规范的 Web 服务。CXF 提供了强大的功能支持,包括 XML 数据的...
【标题】:“使用CXF:Java 2 WSDL” 【描述】:在Java开发中,Apache CXF是一个广泛使用的开源框架,它允许开发者构建和部署Web服务。"Java 2 WSDL"指的是从Java类生成WSDL(Web Services Description Language)...
wsdl2java源码建造状态 CXF客户端 介绍 有几个不同的插件可以使用 grails 来使用 SOAP Web 服务,但目前没有一个可以处理缓存端口引用的问题。 ws-client 插件可以工作,但它的局限性在于它如何创建和使用 wsdl。 它...
本文将深入探讨如何利用CXF的`wsdl2java`工具从WSDL(Web Services Description Language)文件生成Java客户端和服务端代码,从而快速构建Web服务。 首先,我们需要理解WSDL。WSDL是一种XML格式的规范,它定义了Web...
`wsdl2java`是Apache CXF框架提供的一款命令行工具,它能够根据WSDL文件自动生成Java客户端和服务端代码,大大简化了Web服务的开发流程。这个工具支持两种方式来获取WSDL:文件路径和URL。 ### 使用WSDL2Java工具 ...
1. **安装工具**:根据不同的Web服务框架,如Apache CXF、Axis2等,你需要先下载对应的工具包,包含`WSDL2Java`命令行工具。 2. **运行命令**:在命令行中,输入`WSDL2Java`命令,指定WSDL文件路径和相关选项。例如...
抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java(Throws Could not find main class: org.apache.axis.wsdl.WSDL2Java)。 添加本文的jar包压缩包解压出来的所有jar包到当前使用的java.exe 命令的lib目录下的ext...
2. **运行WSDL2Java命令**:在命令行中,使用Apache CXF提供的wsdl2java工具,指定WSDL文件的路径,例如: ``` java -jar cxf-codegen-plugin.jar -wsdl <path_to_wsdl> -d ``` 其中,`<path_to_wsdl>`是WSDL...
2. **安装Apache CXF**:为了使用`wsdl2java`,你需要先在你的开发环境中安装Apache CXF。你可以从官方网站下载并按照指示进行安装。 3. **运行wsdl2java命令**:在命令行中,定位到CXF的bin目录,然后使用以下命令...
WSDL2Java工具是Apache CXF框架的一部分,它实现了WSDL到Java代码的转换,将服务接口描述转化为可执行的Java类,方便开发者在Java环境中调用或实现Web服务。 一、WSDL2Java的作用 1. 生成客户端存根(Stub):通过...
### CXF提供的wsdl2java工具创建客户端的相关知识点 #### 一、背景介绍 CXF是一个强大的开源项目,主要用于简化企业级服务(如RESTful Web服务、SOAP Web服务等)的构建过程。它提供了多种工具和服务,使得开发者...
描述中提到的"环境变量指定的bin包"是指在运行`wsdl2java`命令之前,需要将Apache CXF或类似的工具包的bin目录添加到系统的PATH环境变量中,这样系统才能识别并执行`wsdl2java`这个命令。Apache CXF是一个开源的、...
通过运行`wsdl2java.cmd`,用户可以将WSDL描述转换为可操作的Java类。 4. **使用Wsdl2Java工具**: - **命令行参数**:运行`wsdl2java`时,可以指定各种参数,比如指定输出目录 (`-d`)、选择代码生成模式 (`-...
wsdl2java源码Camel-CXF SOAP 客户端演示(使用 2 路 SSL) 此存储库包含一个示例 Camel-CXF 项目,该项目演示了使用 2 向 SSL(客户端身份验证)的客户端 SOAP 请求/回复。 入门 首先,将此存储库克隆到您的本地...
- 它具有强大的工具集,如CXF wsdl2java工具,可以从WSDL生成Java代码,反之亦然。 - CXF提供丰富的扩展点,允许自定义行为,如添加安全验证、日志记录等。 总的来说,CXF实例的Java类和配置文件是实现Web服务的...
`WSDL2Java`工具通常与Apache CXF、 Axis等开源Web服务框架一起使用。这些工具将WSDL文件解析后,会生成Java客户端的Stubs,这些Stubs就像普通Java类一样,封装了与Web服务交互的所有细节。服务端的实现类则可以帮助...
2. **使用CXF的wsdl2java工具**:CXF提供了一个名为`wsdl2java`的命令行工具,用于将WSDL转换为Java代码。在命令行中,你可以输入以下命令: ```bash wsdl2java -d /path/to/output/directory /path/to/your.wsdl...
转换WSDL文件为Java代码的工具有很多,除了MyEclipse,还有Apache CXF的wsdl2java工具,它是Apache CXF框架的一部分,可以独立于IDE运行。使用CXF的wsdl2java命令行工具,开发者可以在命令行环境中执行转换,同样...
2. **使用CXF wsdl2java工具**:CXF提供了一个命令行工具`wsdl2java`,可以将WSDL转换为Java客户端代码。运行以下命令: ``` cxf-codegen-plugin -wsdlLocation=your-wsdl-url -d output-directory ``` 这将生成...