【问题标题】:How do i force the cxf-codegen-plugin (CXF wsdltojava) Maven plugin to generate for Javaee 5?我如何强制 cxf-codegen-plugin (CXF wsdltojava) Maven 插件为 Javaee 5 生成?
【发布时间】:2011-03-11 12:10:39
【问题描述】:

虽然使用 Maven 和来自 apache 的 cxf-codegen-plugin,但它似乎为 Java ee 6 生成代码。我可以通过错误消息 ../generated-sources/cxf/.../cxf/gen/prod 来判断/IProd.java: 找不到符号 符号:类动作 位置:接口 ....IProd

动作只在jee6++中

如何强制它为 Javaee 5 生成?是否有任何标志 - 找不到任何标志。

计算机上的所有内容都设置为 Java 1.5,Java_Home 和 java -version 提供 1.5.. 我在编译路径上有 java EE 5 api。 maven中的插件设置为1.5。 还是……

编辑:已解决,请参阅 cmets。

【问题讨论】:

  • 您也将 maven 编译器插件设置为 1.5?而且我想我会重命名 java 6 目录以确保它不能被 maven 找到。并在编译后重命名。此外,您使用什么版本的代码生成器,您可以发布 pom 文件的相关部分吗?
  • 编译器为 1.5。我什至尝试从计算机中删除 java 6 jdk/jre,只有 1.5。相同的。使用 CXF 2.2.12。是否有一个 jaxws 依赖项可以做到这一点..
  • 在浏览了我所有的依赖项后也找到了答案,但没有找到任何东西。在 cxf-plugin 的设置中(在您的 .m2 目录下)查看 cxf-parent.pom,您会看到 JAXB 版本被硬编码为 2.1 (JEE6)。我支持 cxf-codegen-plugin 2.0.10 版,这是我能找到的最后一个将 JAXB 硬编码为 2.0 版(JEE5)的版本。我真的认为应该有一个选项来选择是否要为 JEE5 或 JEE 6 生成而无需检查插件本身...

标签: java maven cxf


【解决方案1】:

我用另一个插件生成我的 JAX-WS 类

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>wsimport</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <target>2.0</target>
        <packageName>some.pack.age</packageName> <!-- The name of your generated source package -->
    </configuration>

    <!--
        if you want to use a specific version of JAX-WS, you can do so like
        this
    -->
    <dependencies>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-tools</artifactId>
            <version>2.1.4</version>
        </dependency>
    </dependencies>
</plugin>

您应该将 wsdl 的文件添加到

/src/wsdl/

【讨论】:

  • org.jvnet.jax-ws-commonsjaxws-maven-plugin2.0 是关键对我来说。
【解决方案2】:

您需要在 maven 编译器插件中指定 java 版本,如下所示: (如果仍然生成错误代码,则包括“bootclasspath”)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
      <source>1.5</source>
      <target>1.5</target>
      <encoding>UTF-8</encoding>
      <bootclasspath>${java.home}\lib\rt.jar</bootclasspath>
    </configuration>
  </plugin>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 2014-12-03
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多