加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在CXF wsdl2java中设置Java合规性级别

发布时间:2020-12-14 16:33:35 所属栏目:Java 来源:网络整理
导读:我是CXF的全新,我试图从WSDL创建一个客户端.过去我已经使用了Metro和Axis.我下载了apache-cxf-2.3.3并使用wsdl2 java来生成客户端存根.我使用Maven并将其设置为我的pom: properties cxf.version2.3.3/cxf.version/propertiesdependencies dependency groupI
我是CXF的全新,我试图从WSDL创建一个客户端.过去我已经使用了Metro和Axis.我下载了apache-cxf-2.3.3并使用wsdl2 java来生成客户端存根.我使用Maven并将其设置为我的pom:
<properties>
    <cxf.version>2.3.3</cxf.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-ws-security</artifactId>
        <version>${cxf.version}</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <inherited>true</inherited>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
                <optimize>true</optimize>
                <debug>true</debug>
            </configuration>
        </plugin>
    </plugins>
</build>

当我构建项目时,我会收到以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project client-cxf: Compilation failure: Compilation failure:
[ERROR] DevelProjectsClient-CXFsrcmainjavamywebserviceServiceRuntimeException.java:[38,149] cannot find symbol
[ERROR] symbol  : method required()

[ERROR] DevelProjectsClient-CXFsrcmainjavamysnmpv2MyService.java:[76,8] cannot find symbol
[ERROR] symbol  : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
[ERROR] location: class javax.xml.ws.Service

似乎这些问题与生成的代码使用Java 6功能(XmlElementRef的“require”元素,Service的新构造函数)相关,但CXF Maven依赖关系适用于Java 5.

有没有办法指定生成的代码应该符合Java 5?

解决方法

实际上,CXF的wsdl2java命令行工具的代码与Java 5兼容,它可能与Java 6不兼容.原因是它生成符合JAX-WS 2.2和JAXB 2.2的代码.但是,Java 6中包含的API的版本只有2.1.

有几个选择:

1)最简单的是在wsdl2java命令中添加“-fe jaxws21”,使其生成符合jaxws 2.1的代码而不是2.2

2)将2.2 api jar添加到JDK的已批准目录中

3)配置maven中的编译器插件以“认可”2.2个jar

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读