`

根据wsdl生成java代码的方法

阅读更多

        今天排查同事的一个很奇怪的问题,现在将今天遇到的问题列举出来。

        在调用外围系统的webservice服务时候,一般来说对方会提供一个wsdl,然后我们要根据wsdl生成相应的类,通过这种方式,做到了跨语言的完美方案,但是也带来了一些复杂性。在java中我们一般使用jdk自带的wsimport工具或者其他三方系统的wsdl4j工具生成java版本的stub实现。

        

  •    使用jdk里面自带的wsimport工具,具体使用办法如下:

        在JDK的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方。该工具可以用于非Java的服务器,如:用C#编写的WebService,通过wsimport则生成Java的客户端实现。

  在命令提示符中使用如下命令:

       wsimport http://localhost:8080/Demo/services/MyService?wsdl

 

  命令参数说明:
  -d:生成客户端执行类的class文件的存放目录
  -s:生成客户端执行类的源文件的存放目录
  -p:定义生成类的包名
  使用wsimport命令后,可以得到代码,然后可以将代码拷贝到工程里面,也可以将其编译,打包成jar。
      比如 javac com/xxx/*.java com/xxx/yyy/*.java
              jar cvf dest.jar com/
              这样我们就能得到一个dest.jar文件
        使用一下webservice的框架自带的一下wsdl4j生成,由于众所周知的原因,java的webservice的jar很多,经常由于版本和实现的不同,会出现一下莫名奇妙的问题,所以这个地方还是推荐使用你所使用的框架的wsdl4j工具生成相应的stub。
 
  •   使用第三方ws框架,以cxf为例:

       使用一下webservice的框架自带的一下wsdl4j生成,由于众所周知的原因,java的webservice的框架很多,经常由于版本和实现的不同,会出现一下莫名奇妙的问题,所以这个地方还是推荐使用你所使用的框架的wsdl4j工具生成相应的stub

 

  1.  下载apache-cxf-2.5.11.zip并解压到D:\apache-cxf-2.5.11,下载地址:http://mirror.bjtu.edu.cn/apache/cxf/2.5.11/apache-cxf-2.5.11.tar.gz 
  2. 在D:\apache-cxf-2.5.11\bin目录下面执行命令:wsdl2java  http://xxx.yyy.com:8102/ws/UserRemoteService?wsdl     
  3. 命令执行完成后在相关文件夹中会生成相应的代码,将代码全部引入接入系统,与wsimport是相同的

   使用过程中遇到的问题:

  •     在使用的过程中发现一个问题,由于jdk6最高只支持ws2.1规范版本,所以在jdk6下面生成的时候,要加上-frontend jaxws21

        wsdl2java -frontend jaxws21  http://xxx.yyy.com:8102/ws/UserRemoteService?wsdl    

 

  • 发现可以根据wsdl生成java类,java类中的注释有可能是中文,所以要加上encoding参数,例如:-encoding utf-8  

       wsdl2java -ecoding utf-8  http://xxx.yyy.com:8102/ws/UserRemoteService?wsdl  

分享到:
评论

相关推荐

    wsdl生成java代码工具

    本篇文章将详细探讨“wsdl生成java代码工具”的相关知识点,以及如何使用这个工具。 1. **WSDL简介**: WSDL文件描述了Web服务的接口,包括服务提供的操作、输入和输出消息的格式,以及服务的位置。它使得开发者...

    axis2根据wsdl生成java客户端代码

    axis2根据wsdl生成java客户端代码 D:\Software\axis2-1.6.2\bin>wsdl2java.bat -uri http://10.33.30.216:9099/facs/services/ResourceSynchroWebService?wsdl -o E:\wsdloutput -p com.util wsdl2java.bat -uri ...

    xfire根据WSDL生成客户端代码

    使用XFire根据WSDL生成客户端代码,可以大大简化开发过程,因为它自动生成了与服务接口对应的Java类和代理。以下是具体步骤: 1. **安装和配置XFire**:首先,确保已经下载并安装了XFire库。你可以通过Maven或...

    WebService的WSDL文件生成Java代码工具

    在本话题中,我们将深入探讨如何利用WSDL文件生成Java代码,以便于开发和调用WebService。 WSDL文件是WebService的核心,它定义了服务的接口、消息格式、操作和地址等信息。WSDL是XML格式的,可以被工具解析并生成...

    根据wsdl生成webservice服务端(3种方式)

    `wsdl2java`是Apache CXF提供的一个工具,用于根据WSDL文件自动生成Java代码。以下是详细步骤: 1. **配置环境**:确保已安装JDK 1.6及以上版本,并设置好环境变量。还需要下载Apache CXF 2.2.8并解压,将解压后的`...

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

    这样,开发者无需手动编写调用Web服务的Java代码,只需导入WSDL文件,MyEclipse就能自动生成相应的Java客户端 stub类,这些类提供了与Web服务交互的方法。 具体步骤如下: 1. 打开MyEclipse,创建一个新的Web项目...

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

    - **自动化**:自动从WSDL生成Java代码,减少了手动编写客户端代码的工作量。 - **可扩展性**:可以根据需要自定义生成的代码,适应不同的业务场景。 - **跨平台**:基于XML标准,可以在任何支持Java的平台上使用。 ...

    onvif wsdl转成java代码

    这个过程通常涉及到SOAP(Simple Object Access Protocol)库,如Apache CXF或 Axis2,这些库能将WSDL解析并生成Java代码。 在Eclipse中,导入生成的Java包后,开发者就可以在Java项目中直接调用ONVIF服务,实现对...

    Eclipse中用wsdl生成java客户端

    Eclipse中用wsdl生成java客户端 Eclipse是一款功能强大、功能丰富的集成开发环境(IDE),广泛应用于Java开发领域。随着WebService技术的普及,Eclipse也提供了相应的支持,允许开发者通过wsdl文件生成Java客户端...

    wsdl文件生成java webservice 工具(附带生成后调用方法)

    在IT行业中,Web服务是一种常见的跨平台通信方式,允许不同系统之间交换...通过这个工具,可以快速地从WSDL文件生成Java代码,大大简化了Web服务的开发过程。只要遵循上述步骤,你就能成功地创建和调用Java Web服务。

    Axis 把WSDL生成JAVA类

    通过这一过程,可以自动生成与WSDL描述相符的Java代码,包括客户端存根(Stub)和服务器端骨架(Skeleton)。这不仅简化了开发流程,还确保了与WSDL定义的兼容性,提高了开发效率。 #### 转换流程与示例: 1. **...

    wsdl生成java客户端报错问题解决方法

    解决使用wsdl生成java客户端报错:java.lang.reflect.invocationtargetexception的方法之一

    使用cxf wsdl2java生成webservice客户端

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

    axis2根据wsdl生成客户端代码

    运行`WSDL2Java`后,Axis2会生成以下几个关键组件的Java代码: 1. **服务端口类型接口**:如`SyncVendorsPortType`,定义了服务提供的操作方法。 2. **服务代理实现类**:如`SyncVendorsServiceStub`,实现了服务...

    关于wsdl生成java的方式

    【标题】:“关于WSDL生成Java的方式” 在Web服务开发中,WSDL(Web Services Description Language)是一个XML格式的规范,用于定义服务接口、消息交换模式以及如何通过网络调用这些服务。它允许开发者明确地描述...

    使MyEclipse调用Axis的wsdl2java 通过wsdl生成客户端

    MyEclipse会根据WSDL内容自动生成相应的Java客户端代码,包括服务代理类和服务接口。 5. 编译和运行客户端:生成的代码通常位于`src`目录下的一个新包内。现在可以编写客户端程序来调用Web服务。例如,你可以找到...

    根据wsdl文件生成webservice客户端工具(java)

    根据对方提供的webservice地址,你先将对方webservice的wsdl文件描述文件保存到本地为后缀名为.wsdl的文件,然后保存到Tools的这个文件夹下,编辑WSDL2AxisClient.bat这个文件,将%Java_Cmd% org.apache.axis.wsdl....

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

    3. **运行wsdl2java命令**:在命令行中,定位到CXF的bin目录,然后使用以下命令来生成Java代码: ```bash wsdl2java -d <output_directory> -client <wsdl_file_path> ``` 其中,`<output_directory>`是你希望...

    wsdl2java 客户端的自动生成工具

    使用Axis,开发者可以快速地将现有的Java类封装为Web Service,也可以根据WSDL文件生成Java客户端代码,便于调用远程服务。 **Wsdl2Java工具** `Wsdl2Java`是Axis的一部分,它可以从WSDL文件生成Java源码,这些...

    Eclipse中用wsdl生成java客户端.pdf

    以下是使用Eclipse从WSDL生成Java客户端的详细步骤,以及相关知识点的解释: 1. **创建Java项目**: 首先,打开Eclipse,创建一个新的Java项目。在"File"菜单中选择"New" -> "Java Project",输入项目名称,例如...

Global site tag (gtag.js) - Google Analytics