首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CXF codegen maven插件无法在OpenJDK 11上运行

CXF codegen maven插件无法在OpenJDK 11上运行
EN

Stack Overflow用户
提问于 2018-10-17 22:54:24
回答 2查看 24.3K关注 0票数 13

我一直在使用JDK9& 10和CXF codegen plugin 3.2.5和3.2.6,没有任何问题,但是,今天我尝试将我的代码库从Oracle JDK10更新到OpenJDK 11 build 28,但我总是得到相同的错误:

代码语言:javascript
复制
[INFO] Error occurred during initialization of boot layer
[INFO] java.lang.module.FindException: Module java.xml.ws not found
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.747 s
[INFO] Finished at: 2018-10-17T16:38:38+02:00
[INFO] Final Memory: 17M/60M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.cxf:cxf-codegen-plugin:3.2.6:wsdl2java (cerberus-wsdl) on project cerberus: 
[ERROR] Exit code: 1
[ERROR] Command line was: /opt/prod_jdk/bin/java --add-modules java.activation,java.xml.bind,java.xml.ws --add-exports=java.xml.bind/com.sun.xml.internal.bind.v2.runtime=ALL-UNNAMED --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.impl.xs=ALL-UNNAMED --add-exports=java.xml.bind/com.sun.xml.internal.bind.marshaller=ALL-UNNAMED --add-opens java.xml.ws/javax.xml.ws.wsaddressing=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED -jar /tmp/cxf-tmp-2828938832312113909/cxf-codegen12095310072621993552.jar /tmp/cxf-tmp-2828938832312113909/cxf-w2j12256414556760820901args

这是我使用CXF codegen插件的pom.xml:

代码语言:javascript
复制
<plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-codegen-plugin</artifactId>
                <version>3.2.6</version>
                <configuration>
                    <fork>once</fork>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>javax.annotation</groupId>
                        <artifactId>javax.annotation-api</artifactId>
                        <version>1.3.2</version>
                    </dependency>

                    <dependency>
                        <groupId>javax.activation</groupId>
                        <artifactId>javax.activation-api</artifactId>
                        <version>1.2.0</version>
                    </dependency>

                    <dependency>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                        <version>2.3.1</version>
                    </dependency>

                    <dependency>
                        <groupId>org.glassfish.jaxb</groupId>
                        <artifactId>jaxb-runtime</artifactId>
                        <version>2.3.1</version>
                    </dependency>

                    <dependency>
                        <groupId>javax.xml.ws</groupId>
                        <artifactId>jaxws-api</artifactId>
                        <version>2.3.1</version>
                    </dependency>

                    <dependency>
                        <groupId>com.sun.xml.ws</groupId>
                        <artifactId>jaxws-rt</artifactId>
                        <version>2.3.1</version>
                    </dependency>
                </dependencies>
<executions>...</executions>
<plugin>

我是不是遗漏了什么?据我所知,这应该与JDK9和10中的工作方式相同。有一个关于JDK11兼容性的问题https://issues.apache.org/jira/browse/CXF-7741,但这是针对CXF框架的,而不是针对插件的(我认为)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-19 02:15:02

此问题将在cxf 3.3.0 (https://issues.apache.org/jira/browse/CXF-7852)中解决

现在,您可以在https://github.com/apache/cxf的mvn-plugins目录中运行mvn install来构建插件,并将pom中的版本设置为3.3.0-SNAPSHOT

apache :插件在apache库中,所以从那里获取可能更好:

代码语言:javascript
复制
<pluginRepositories>         
   <pluginRepository>
      <id>apache.snapshots</id>
      <name>Maven Plugin Snapshots</name>
      <url>http://repository.apache.org/snapshots/</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
</pluginRepositories>
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-codegen-plugin</artifactId>
      <version>3.3.0-SNAPSHOT</version>
...

注意(2019-01-28):插件现在是released,我们可以像往常一样添加依赖项:

代码语言:javascript
复制
<dependency>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <version>3.3.0</version>
  <type>maven-plugin</type>
</dependency>
票数 22
EN

Stack Overflow用户

发布于 2018-12-19 01:17:56

我也在努力让这个插件与Java 11一起工作。已尝试详细说明插件依赖关系以解决此问题:

代码语言:javascript
复制
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-xjc-plugin</artifactId>
                <version>3.2.3</version>
                <dependencies>
                    <dependency>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-xjc</artifactId>
                        <version>${jaxb-api.version}</version>
                    </dependency>
                    <!-- Java Architecture for XML Binding (JAXB), Java 11+ support -->                                         
                    <dependency>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                        <version>${jaxb-api.version}</version>
                    </dependency>                       
                    <dependency>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-impl</artifactId>
                        <version>${jaxb-api.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-core</artifactId>
                        <version>${jaxb-api.version}</version>
                    </dependency>
                    <!-- JavaBeans Activation Framework (JAF), Java 11+ support -->
                    <dependency>
                        <groupId>javax.activation</groupId>
                        <artifactId>javax.activation-api</artifactId>
                        <version>${jaf-api.version}</version>
                    </dependency>       
                    <!-- Java API for XML Web Services (JAX-WS), Java 11+ support -->
                    <dependency>
                        <groupId>javax.xml.ws</groupId>
                        <artifactId>jaxws-api</artifactId>
                        <version>${jaxws-api.version}</version>
                    </dependency>
                </dependencies>                 
            </plugin>               

。。不走运。当我升级到3.2.3版本的插件时,这个问题就消失了(在等待3.3.0的时候,这里描述:https://issues.apache.org/jira/browse/CXF-7852)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52857820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档