在CXF wsdl2java中设置Java Compliance Level

|| 我是CXF的新手,正在尝试通过WSDL创建一个客户端。我过去曾使用Metro和Axis。我下载了apache-cxf-2.3.3,并使用wsdl2java生成了客户端存根。我使用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] \\Devel\\Projects\\Client-CXF\\src\\main\\java\\my\\webservice\\ServiceRuntimeException.java:[38,149] cannot find symbol
[ERROR] symbol  : method required()
[ERROR] \\Devel\\Projects\\Client-CXF\\src\\main\\java\\my\\snmpv2\\MyService.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罐子添加到JDK的认可目录中 3)在maven中配置编译器插件以“认可” 2.2个jar     
wsdl2java文档没有提及用于指定Java版本的任何选项。 您可以尝试使用Maven cxf-codegen-plugin生成客户端存根,该存根应遵循Maven编译器的源版本和目标版本。 如果这不起作用,则可以通过更改pom中的源代码行和目标行来将Maven配置为使用Java 6,如下所示:
               <source>1.6</source>
               <target>1.6</target>
    

要回复问题请先登录注册