长时间不写东西,慢慢的觉得脱离了学习的轨道。我要记住学习中遇到的每一点问题。
CXF很久没有用过,但却并不陌生,异常不可避免。这次是用CXF自带bat工具生成客户端测试代码。
首先,下载CXF包,并将其目录下的bin添加到系统的path中。dos下运行wsdl2java 不会出现找不到命令的错误,表示配置成功。
然后,进入到wsdl文件所在目录,执行 wsdl2java -client *.xml
命令,正常执行。
再次,将wsdl文件同级目录下生成的客户端测试代码和wsdl文件都copy到工程中,编译时异常出现了。继承Service的类构造器有error,不能被正常编译。
这是三个报错的构造函数(请认真看注释描述):
//This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2
//API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1
//compliant code instead.
public IcpBusinessService(WebServiceFeature ... features) {
super(WSDL_LOCATION, SERVICE, features);
}
//This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2
//API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1
//compliant code instead.
public IcpBusinessService(URL wsdlLocation, WebServiceFeature ... features) {
super(wsdlLocation, SERVICE, features);
}
//This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2
//API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1
//compliant code instead.
public IcpBusinessService(URL wsdlLocation, QName serviceName, WebServiceFeature ... features) {
super(wsdlLocation, serviceName, features);
}
原因请参见:http://cxf.apache.org/docs/23-migration-guide.html 官方说明。

怎么解决呢? 经过研究发现,其不能正常编译通过是由于jax-ws2.2规约与java6冲突。 但程序又不能仅以java5来编译,故需要降低jax-ws规约版本,可以这样处理: 执行命令
wsdl2java -frontend jaxws21 -client *.xml
这样以jax-ws2.1生成的代码就可以在java6中编译通过并可执行。修改 *_Client.java,这个是测试的主方法,录入参数执行,即可调用远程服务.
注:我将这两次生成的客户端代码进行比较,唯一的区别就是用后者生成的客户端代码将报错的3个构造函数移除了。也就是说,我们只需要将这3个出错的构造器删除就可以处理此异常。
over.
分享到:
相关推荐
使用cxf wsdl2java生成webservice客户端命令
5. **执行Java 2 WSDL**:使用`wsdl2java`命令,指定Java接口或类的位置,工具会自动生成对应的WSDL文件。例如,命令可能类似`cxf-codegen-plugin -d . -client -wsdl myservice.wsdl -impl myServiceImpl.java`,...
### 使用WSDL2Java生成Java客户端 使用`WSDL2Java`工具通常涉及以下步骤: 1. **安装工具**:根据不同的Web服务框架,如Apache CXF、Axis2等,你需要先下载对应的工具包,包含`WSDL2Java`命令行工具。 2. **运行...
本文将深入探讨如何使用`wsdl2java`工具生成Java客户端所需的类和包,以便与WSDL定义的服务进行交互。 首先,让我们了解`wsdl2java`工具。它是由Apache CXF项目提供的,能够从一个WSDL文件自动生成Java源代码,这些...
通过本文档的介绍,我们了解了如何使用 Apache CXF 的 `wsdl2java` 工具来自动生成 Web 服务的客户端和服务端代码。这个过程简单易行,能够极大地提高开发效率。开发者可以根据实际需求选择不同的选项来定制生成的...
本文将深入探讨如何利用CXF的`wsdl2java`工具从WSDL(Web Services Description Language)文件生成Java客户端和服务端代码,从而快速构建Web服务。 首先,我们需要理解WSDL。WSDL是一种XML格式的规范,它定义了Web...
例如,在Java中,可以使用Apache CXF或JAX-WS的wsimport工具来生成客户端代码。在.NET框架下,Visual Studio或svcutil.exe工具能完成相同的工作。对于Python,Suds库是一个常见的选择。 在给定的压缩包中,有一个名...
通过以上步骤,我们不仅搭建了一个简单的CXF服务端,还学会了如何使用`wsdl2java`工具来生成并集成客户端代码。这为后续进行更复杂的服务开发打下了坚实的基础。CXF的灵活性和易用性使其成为Java Web服务开发的一个...
在IT行业中,Web服务是一种广泛使用的接口通信方式,它允许不同的应用程序之间进行数据交换。WSDL(Web Services ...在Apache CXF中,同样可以使用`cxf-codegen-plugin`或者`wsdl2java`命令来实现类似的功能。
WSDL2Java工具是Apache CXF框架的一部分,它允许开发者从一个WSDL文件自动生成Java客户端和服务端的源代码,极大地简化了Web服务的开发过程。 **一、WSDL2Java工具的作用** 1. **客户端代码生成**:当您有一个WSDL...
- 生成:使用Wsdl2Java将WSDL转换为Java代码。 - 实现:编写Java服务提供者实现生成的接口。 - 部署:将服务部署到服务器上。 - 发现:通过服务注册表或UDDI(Universal Description, Discovery, and ...
利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 Java实现登陆验证调用 压缩包里包括需要的所有文件,供需要的同学使用 1.apache-cxf-3.3.7 2.SoapUI 5.4.0-EB 3.生成代码的教程 4.获取service调用的...
这些库提供命令行工具或IDE插件,例如使用Apache CXF的`wsdl2java`命令,可以将WSDL转换为Java类,包括服务接口和服务代理实现。 命令示例: ``` wsdl2java -d /path/to/output/directory ...
2. **使用CXF的wsdl2java工具**:CXF提供了一个名为`wsdl2java`的命令行工具,用于将WSDL转换为Java代码。在命令行中,你可以输入以下命令: ```bash wsdl2java -d /path/to/output/directory /path/to/your.wsdl...
本文将详细介绍三种基于WSDL生成WebService服务端的方法:使用`wsdl2java`命令、通过SOAPUI工具及借助MyEclipse的Web Service项目功能。 #### 方法一:使用`wsdl2java`命令生成 `wsdl2java`是Apache CXF提供的一个...
- 使用CXF的wsdl2java命令行工具,将WSDL文件转换为Java代码。命令格式如下: ``` cxf-codegen-plugin -wsdlLocation <WSDL文件路径> -d <生成代码的目标目录> ``` - 生成的代码包括服务接口、消息bean和SOAP...
【标题】:“把wsdl文件或地址...MyEclipse和Apache CXF的wsdl2java工具都是常用的解决方案,它们通过解析WSDL文件,自动生成与服务接口对应的Java类,使得开发者可以专注于业务逻辑的实现,而不用关心底层通信的细节。
2. **生成客户端代码**:使用对应的工具(如CXF的wsdl2java或JAX-WS的wsimport),将WSDL转换为本地语言的客户端代码。 3. **编译并运行**:编译生成的客户端代码,然后在你的应用中引入这些类,调用相应的方法即可...
wsdl2java源码sbt-cxf-wsdl2java 一个 sbt 插件,用于使用 cxf 从 WSDL 生成 java 工件 要求 快速开始 将插件添加到project/plugins.sbt : resolvers + = " Sonatype Repository " at " ...sbt-cxf-wsdl2java ...
`wsdl2java`是Apache CXF框架提供的一款命令行工具,它能够根据WSDL文件自动生成Java客户端和服务端代码,大大简化了Web服务的开发流程。这个工具支持两种方式来获取WSDL:文件路径和URL。 ### 使用WSDL2Java工具 ...