`
ahaoo0712
  • 浏览: 17674 次
  • 性别: Icon_minigender_1
  • 来自: 襄樊
社区版块
存档分类
最新评论

CXF使用wsdl2java生成客户端super报错的解决

 
阅读更多

    长时间不写东西,慢慢的觉得脱离了学习的轨道。我要记住学习中遇到的每一点问题。

 

    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.

 

分享到:
评论
2 楼 nut1018 2012-06-08  
恩,碰到了同样的问题,确实是这样的,cxf2.3.6有这个问题,2.1.5生成的没这个问题
1 楼 sleepingxu 2012-05-08  
刚好也遇到这个问题,谢谢分享

相关推荐

    使用cxf wsdl2java生成webservice客户端

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

    使用CXF: Java 2 WSDL

    5. **执行Java 2 WSDL**:使用`wsdl2java`命令,指定Java接口或类的位置,工具会自动生成对应的WSDL文件。例如,命令可能类似`cxf-codegen-plugin -d . -client -wsdl myservice.wsdl -impl myServiceImpl.java`,...

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

    ### 使用WSDL2Java生成Java客户端 使用`WSDL2Java`工具通常涉及以下步骤: 1. **安装工具**:根据不同的Web服务框架,如Apache CXF、Axis2等,你需要先下载对应的工具包,包含`WSDL2Java`命令行工具。 2. **运行...

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

    本文将深入探讨如何使用`wsdl2java`工具生成Java客户端所需的类和包,以便与WSDL定义的服务进行交互。 首先,让我们了解`wsdl2java`工具。它是由Apache CXF项目提供的,能够从一个WSDL文件自动生成Java源代码,这些...

    apache CXF wsdl2java工具使用说明

    通过本文档的介绍,我们了解了如何使用 Apache CXF 的 `wsdl2java` 工具来自动生成 Web 服务的客户端和服务端代码。这个过程简单易行,能够极大地提高开发效率。开发者可以根据实际需求选择不同的选项来定制生成的...

    利用CXF的wsdl2java来建立Web Service.

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

    wsdl生成服务的客户端调用代码

    例如,在Java中,可以使用Apache CXF或JAX-WS的wsimport工具来生成客户端代码。在.NET框架下,Visual Studio或svcutil.exe工具能完成相同的工作。对于Python,Suds库是一个常见的选择。 在给定的压缩包中,有一个名...

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

    通过以上步骤,我们不仅搭建了一个简单的CXF服务端,还学会了如何使用`wsdl2java`工具来生成并集成客户端代码。这为后续进行更复杂的服务开发打下了坚实的基础。CXF的灵活性和易用性使其成为Java Web服务开发的一个...

    xfire根据WSDL生成客户端代码

    在IT行业中,Web服务是一种广泛使用的接口通信方式,它允许不同的应用程序之间进行数据交换。WSDL(Web Services ...在Apache CXF中,同样可以使用`cxf-codegen-plugin`或者`wsdl2java`命令来实现类似的功能。

    wsdl2java生成工具

    WSDL2Java工具是Apache CXF框架的一部分,它允许开发者从一个WSDL文件自动生成Java客户端和服务端的源代码,极大地简化了Web服务的开发过程。 **一、WSDL2Java工具的作用** 1. **客户端代码生成**:当您有一个WSDL...

    wsdl生成java代码工具

    - 生成:使用Wsdl2Java将WSDL转换为Java代码。 - 实现:编写Java服务提供者实现生成的接口。 - 部署:将服务部署到服务器上。 - 发现:通过服务注册表或UDDI(Universal Description, Discovery, and ...

    利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 SpringBoot实现登陆验证调用.rar

    利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 Java实现登陆验证调用 压缩包里包括需要的所有文件,供需要的同学使用 1.apache-cxf-3.3.7 2.SoapUI 5.4.0-EB 3.生成代码的教程 4.获取service调用的...

    WSDL生成Web Service java客户端

    这些库提供命令行工具或IDE插件,例如使用Apache CXF的`wsdl2java`命令,可以将WSDL转换为Java类,包括服务接口和服务代理实现。 命令示例: ``` wsdl2java -d /path/to/output/directory ...

    apache-cxf生成wsdl

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

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

    本文将详细介绍三种基于WSDL生成WebService服务端的方法:使用`wsdl2java`命令、通过SOAPUI工具及借助MyEclipse的Web Service项目功能。 #### 方法一:使用`wsdl2java`命令生成 `wsdl2java`是Apache CXF提供的一个...

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

    - 使用CXF的wsdl2java命令行工具,将WSDL文件转换为Java代码。命令格式如下: ``` cxf-codegen-plugin -wsdlLocation <WSDL文件路径> -d <生成代码的目标目录> ``` - 生成的代码包括服务接口、消息bean和SOAP...

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

    【标题】:“把wsdl文件或地址...MyEclipse和Apache CXF的wsdl2java工具都是常用的解决方案,它们通过解析WSDL文件,自动生成与服务接口对应的Java类,使得开发者可以专注于业务逻辑的实现,而不用关心底层通信的细节。

    wsdl生成客户端

    2. **生成客户端代码**:使用对应的工具(如CXF的wsdl2java或JAX-WS的wsimport),将WSDL转换为本地语言的客户端代码。 3. **编译并运行**:编译生成的客户端代码,然后在你的应用中引入这些类,调用相应的方法即可...

    wsdl2java源码-sbt-cxf-wsdl2java:一个sbt插件,用于使用cxf从WSDL生成java工件

    wsdl2java源码sbt-cxf-wsdl2java 一个 sbt 插件,用于使用 cxf 从 WSDL 生成 java 工件 要求 快速开始 将插件添加到project/plugins.sbt : resolvers + = " Sonatype Repository " at " ...sbt-cxf-wsdl2java ...

    wsdl2java工具

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

Global site tag (gtag.js) - Google Analytics