使用jaxb-runtime 4.0.3和maven-jaxb2-plugin生成Java Stub失败
问题详情
- 环境:Java 17,原使用jaxb-runtime 2.3.3 + maven-jaxb2-plugin 0.14.0可正常从WSDL生成Java Stub
- 升级操作:将jaxb-runtime升级至4.0.3,同时完成以下修改:
- 将.xjb文件中的
javax.xml.bind.annotation.XmlRootElement替换为jakarta.xml.bind.annotation.XmlRootElement - 将命名空间
http://java.sun.com/xml/ns/jaxb替换为http://jakarta.ee/xml/ns/jaxb
- 将.xjb文件中的
- 触发错误:
Error injecting: org.jvnet.mjiip.v_2.XJC2Mojo java.lang.NoClassDefFoundError: com/sun/xml/bind/api/ErrorListener.
当前pom.xml配置
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.skf.messaging</groupId> <artifactId>common-messaging-ws-objects</artifactId> <version>0.0.1-SNAPSHOT</version> <name>common-messaging-ws-objects</name> <description>common-messaging-ws-objects</description> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.release>17</maven.compiler.release> <log4j2.version>2.17.0</log4j2.version> <sonar.dependencyCheck.htmlReportPath>./target/dependency-check-report.html</sonar.dependencyCheck.htmlReportPath> <sonar.dependencyCheck.jsonReportPath>./target/dependency-check-report.json</sonar.dependencyCheck.jsonReportPath> </properties> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>4.0.3</version> </dependency> </dependencies> <distributionManagement> <repository> <id>wcl</id> <url>https://pkgs.dev.azure.com/skforg/WCL-2020/_packaging/wcl/maven/v1</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </distributionManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <version>7.4.4</version> <configuration> <formats> <format>xml</format> <format>html</format> <format>json</format> </formats> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <release>${maven.compiler.release}</release> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2-plugin</artifactId> <version>0.15.3</version> <dependencies> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>4.0.3</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <schemaDirectory>${project.basedir}/src/main/resources/wsdl</schemaDirectory> <extension>true</extension> <args> <arg>-Xannotate</arg> </args> <plugins> <plugin> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics-annotate</artifactId> <version>1.1.0</version> </plugin> </plugins> <schemaDirectory>${project.basedir}/src/main/resources/wsdl</schemaDirectory> <schemaIncludes> <include>*.wsdl</include> </schemaIncludes> </configuration> </plugin> </plugins> </build> </project>
内容的提问来源于stack exchange,提问作者user22240775
相关产品推荐
相关产品推荐

