`
solomon
  • 浏览: 47870 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

CXF WSDL2JAVA

阅读更多
转自 : 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(&quot;Tom&quot;) ); 
      }
    }
注意:运行时,要一定先要发布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客户端

    使用cxf wsdl2java生成webservice客户端命令

    apache CXF wsdl2java工具使用说明

    ### Apache CXF wsdl2java 工具使用详解 #### 一、Apache CXF 概述 Apache CXF 是一个高性能、轻量级的开源框架,用于构建和使用基于 SOAP 和 REST 规范的 Web 服务。CXF 提供了强大的功能支持,包括 XML 数据的...

    使用CXF: Java 2 WSDL

    【标题】:“使用CXF:Java 2 WSDL” 【描述】:在Java开发中,Apache CXF是一个广泛使用的开源框架,它允许开发者构建和部署Web服务。"Java 2 WSDL"指的是从Java类生成WSDL(Web Services Description Language)...

    wsdl2java源码-grails-cxf-client:用于grails的简单cxf客户端

    wsdl2java源码建造状态 CXF客户端 介绍 有几个不同的插件可以使用 grails 来使用 SOAP Web 服务,但目前没有一个可以处理缓存端口引用的问题。 ws-client 插件可以工作,但它的局限性在于它如何创建和使用 wsdl。 它...

    利用CXF的wsdl2java来建立Web Service.

    本文将深入探讨如何利用CXF的`wsdl2java`工具从WSDL(Web Services Description Language)文件生成Java客户端和服务端代码,从而快速构建Web服务。 首先,我们需要理解WSDL。WSDL是一种XML格式的规范,它定义了Web...

    wsdl2java工具

    `wsdl2java`是Apache CXF框架提供的一款命令行工具,它能够根据WSDL文件自动生成Java客户端和服务端代码,大大简化了Web服务的开发流程。这个工具支持两种方式来获取WSDL:文件路径和URL。 ### 使用WSDL2Java工具 ...

    WSDL2Java--根据wsdl生成Java客户端工具

    1. **安装工具**:根据不同的Web服务框架,如Apache CXF、Axis2等,你需要先下载对应的工具包,包含`WSDL2Java`命令行工具。 2. **运行命令**:在命令行中,输入`WSDL2Java`命令,指定WSDL文件路径和相关选项。例如...

    抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java

    抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java(Throws Could not find main class: org.apache.axis.wsdl.WSDL2Java)。 添加本文的jar包压缩包解压出来的所有jar包到当前使用的java.exe 命令的lib目录下的ext...

    wsdl2java生成工具

    2. **运行WSDL2Java命令**:在命令行中,使用Apache CXF提供的wsdl2java工具,指定WSDL文件的路径,例如: ``` java -jar cxf-codegen-plugin.jar -wsdl &lt;path_to_wsdl&gt; -d ``` 其中,`&lt;path_to_wsdl&gt;`是WSDL...

    wsdl2java 生成wsdljava客户端所需要的包

    2. **安装Apache CXF**:为了使用`wsdl2java`,你需要先在你的开发环境中安装Apache CXF。你可以从官方网站下载并按照指示进行安装。 3. **运行wsdl2java命令**:在命令行中,定位到CXF的bin目录,然后使用以下命令...

    WSDL2Java工具

    WSDL2Java工具是Apache CXF框架的一部分,它实现了WSDL到Java代码的转换,将服务接口描述转化为可执行的Java类,方便开发者在Java环境中调用或实现Web服务。 一、WSDL2Java的作用 1. 生成客户端存根(Stub):通过...

    CXF提供的wsdl2java工具创建客户端

    ### CXF提供的wsdl2java工具创建客户端的相关知识点 #### 一、背景介绍 CXF是一个强大的开源项目,主要用于简化企业级服务(如RESTful Web服务、SOAP Web服务等)的构建过程。它提供了多种工具和服务,使得开发者...

    wsdl2java命令使用所需bin

    描述中提到的"环境变量指定的bin包"是指在运行`wsdl2java`命令之前,需要将Apache CXF或类似的工具包的bin目录添加到系统的PATH环境变量中,这样系统才能识别并执行`wsdl2java`这个命令。Apache CXF是一个开源的、...

    wsdl生成java代码工具

    通过运行`wsdl2java.cmd`,用户可以将WSDL描述转换为可操作的Java类。 4. **使用Wsdl2Java工具**: - **命令行参数**:运行`wsdl2java`时,可以指定各种参数,比如指定输出目录 (`-d`)、选择代码生成模式 (`-...

    wsdl2java源码-camel-cxf-soap-client:使用2向SSL(客户端身份验证)演示客户端SOAP请求/回复

    wsdl2java源码Camel-CXF SOAP 客户端演示(使用 2 路 SSL) 此存储库包含一个示例 Camel-CXF 项目,该项目演示了使用 2 向 SSL(客户端身份验证)的客户端 SOAP 请求/回复。 入门 首先,将此存储库克隆到您的本地...

    cxf实例的java类和配置文件

    - 它具有强大的工具集,如CXF wsdl2java工具,可以从WSDL生成Java代码,反之亦然。 - CXF提供丰富的扩展点,允许自定义行为,如添加安全验证、日志记录等。 总的来说,CXF实例的Java类和配置文件是实现Web服务的...

    WSDL2JAVA工具及工程jar包

    `WSDL2Java`工具通常与Apache CXF、 Axis等开源Web服务框架一起使用。这些工具将WSDL文件解析后,会生成Java客户端的Stubs,这些Stubs就像普通Java类一样,封装了与Web服务交互的所有细节。服务端的实现类则可以帮助...

    apache-cxf生成wsdl

    2. **使用CXF的wsdl2java工具**:CXF提供了一个名为`wsdl2java`的命令行工具,用于将WSDL转换为Java代码。在命令行中,你可以输入以下命令: ```bash wsdl2java -d /path/to/output/directory /path/to/your.wsdl...

    把wsdl文件或地址转化成java代码工具

    转换WSDL文件为Java代码的工具有很多,除了MyEclipse,还有Apache CXF的wsdl2java工具,它是Apache CXF框架的一部分,可以独立于IDE运行。使用CXF的wsdl2java命令行工具,开发者可以在命令行环境中执行转换,同样...

    WebService CXF --- 由WSDL文件开发Client端

    2. **使用CXF wsdl2java工具**:CXF提供了一个命令行工具`wsdl2java`,可以将WSDL转换为Java客户端代码。运行以下命令: ``` cxf-codegen-plugin -wsdlLocation=your-wsdl-url -d output-directory ``` 这将生成...

Global site tag (gtag.js) - Google Analytics