今天排查同事的一个很奇怪的问题,现在将今天遇到的问题列举出来。
在调用外围系统的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
- 使用第三方ws框架,以cxf为例:
使用一下webservice的框架自带的一下wsdl4j生成,由于众所周知的原因,java的webservice的框架很多,经常由于版本和实现的不同,会出现一下莫名奇妙的问题,所以这个地方还是推荐使用你所使用的框架的wsdl4j工具生成相应的stub。
- 下载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
- 在D:\apache-cxf-2.5.11\bin目录下面执行命令:wsdl2java http://xxx.yyy.com:8102/ws/UserRemoteService?wsdl
- 命令执行完成后在相关文件夹中会生成相应的代码,将代码全部引入接入系统,与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代码工具”的相关知识点,以及如何使用这个工具。 1. **WSDL简介**: WSDL文件描述了Web服务的接口,包括服务提供的操作、输入和输出消息的格式,以及服务的位置。它使得开发者...
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生成客户端代码,可以大大简化开发过程,因为它自动生成了与服务接口对应的Java类和代理。以下是具体步骤: 1. **安装和配置XFire**:首先,确保已经下载并安装了XFire库。你可以通过Maven或...
在本话题中,我们将深入探讨如何利用WSDL文件生成Java代码,以便于开发和调用WebService。 WSDL文件是WebService的核心,它定义了服务的接口、消息格式、操作和地址等信息。WSDL是XML格式的,可以被工具解析并生成...
`wsdl2java`是Apache CXF提供的一个工具,用于根据WSDL文件自动生成Java代码。以下是详细步骤: 1. **配置环境**:确保已安装JDK 1.6及以上版本,并设置好环境变量。还需要下载Apache CXF 2.2.8并解压,将解压后的`...
这样,开发者无需手动编写调用Web服务的Java代码,只需导入WSDL文件,MyEclipse就能自动生成相应的Java客户端 stub类,这些类提供了与Web服务交互的方法。 具体步骤如下: 1. 打开MyEclipse,创建一个新的Web项目...
- **自动化**:自动从WSDL生成Java代码,减少了手动编写客户端代码的工作量。 - **可扩展性**:可以根据需要自定义生成的代码,适应不同的业务场景。 - **跨平台**:基于XML标准,可以在任何支持Java的平台上使用。 ...
这个过程通常涉及到SOAP(Simple Object Access Protocol)库,如Apache CXF或 Axis2,这些库能将WSDL解析并生成Java代码。 在Eclipse中,导入生成的Java包后,开发者就可以在Java项目中直接调用ONVIF服务,实现对...
Eclipse中用wsdl生成java客户端 Eclipse是一款功能强大、功能丰富的集成开发环境(IDE),广泛应用于Java开发领域。随着WebService技术的普及,Eclipse也提供了相应的支持,允许开发者通过wsdl文件生成Java客户端...
在IT行业中,Web服务是一种常见的跨平台通信方式,允许不同系统之间交换...通过这个工具,可以快速地从WSDL文件生成Java代码,大大简化了Web服务的开发过程。只要遵循上述步骤,你就能成功地创建和调用Java Web服务。
通过这一过程,可以自动生成与WSDL描述相符的Java代码,包括客户端存根(Stub)和服务器端骨架(Skeleton)。这不仅简化了开发流程,还确保了与WSDL定义的兼容性,提高了开发效率。 #### 转换流程与示例: 1. **...
解决使用wsdl生成java客户端报错:java.lang.reflect.invocationtargetexception的方法之一
使用cxf wsdl2java生成webservice客户端命令
运行`WSDL2Java`后,Axis2会生成以下几个关键组件的Java代码: 1. **服务端口类型接口**:如`SyncVendorsPortType`,定义了服务提供的操作方法。 2. **服务代理实现类**:如`SyncVendorsServiceStub`,实现了服务...
【标题】:“关于WSDL生成Java的方式” 在Web服务开发中,WSDL(Web Services Description Language)是一个XML格式的规范,用于定义服务接口、消息交换模式以及如何通过网络调用这些服务。它允许开发者明确地描述...
MyEclipse会根据WSDL内容自动生成相应的Java客户端代码,包括服务代理类和服务接口。 5. 编译和运行客户端:生成的代码通常位于`src`目录下的一个新包内。现在可以编写客户端程序来调用Web服务。例如,你可以找到...
根据对方提供的webservice地址,你先将对方webservice的wsdl文件描述文件保存到本地为后缀名为.wsdl的文件,然后保存到Tools的这个文件夹下,编辑WSDL2AxisClient.bat这个文件,将%Java_Cmd% org.apache.axis.wsdl....
3. **运行wsdl2java命令**:在命令行中,定位到CXF的bin目录,然后使用以下命令来生成Java代码: ```bash wsdl2java -d <output_directory> -client <wsdl_file_path> ``` 其中,`<output_directory>`是你希望...
使用Axis,开发者可以快速地将现有的Java类封装为Web Service,也可以根据WSDL文件生成Java客户端代码,便于调用远程服务。 **Wsdl2Java工具** `Wsdl2Java`是Axis的一部分,它可以从WSDL文件生成Java源码,这些...
以下是使用Eclipse从WSDL生成Java客户端的详细步骤,以及相关知识点的解释: 1. **创建Java项目**: 首先,打开Eclipse,创建一个新的Java项目。在"File"菜单中选择"New" -> "Java Project",输入项目名称,例如...