cxf自动生成失败

l3zydbqr  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(422)

当我将插件添加到pom文件时,我在应用程序上遇到了一个错误,我无法创建我的服务。
我正在尝试让cxf codegen插件从我的wsdl文件生成源代码。我做了研究,但找不到解决方案。我需要你的帮助。
慰问output:in the 问题选项卡
错误:执行生成goal org.apache的源代码。cxf:cxf-codegen-plugin:3.1.6:wsdl2java失败:执行org.apache时缺少必需的类。cxf:cxf-codegen-plugin:3.1.6:wsdl2java:javax/xml/bind/annotation/adapters/hexbinaryadapter
错误资源:pom.xml
pom.xml文件

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
.......................................................................................................
     <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>3.1.6</version>
            <executions>
               <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <sourceRoot>${basedir}/src/main/java/</sourceRoot>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>${basedir}/src/main/resources/wsdl/ProjectName.wsdl</wsdl>
                                <extraargs>                
                                    <extraarg>-verbose</extraarg>
                                </extraargs>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution> 
            </executions>
        </plugin>

windows10,x64,jdk1.8.0\u212,spring工具套件(4.9.0版本)
spring工具套件特性:jdk编译器:1.8。安装jres:jre1.8.0_241
我的英语不好。对不起。
谢谢您。

7gs2gvoe

7gs2gvoe1#

我不太清楚为什么找不到这个班。您使用的是java8,jaxb应该仍然是该版本中jdk的一部分(版本9和版本10在模块中有它) java.se.ee ,11+将其完全移除)。
您可以尝试添加jaxb作为插件的依赖项:

<plugin>
  <!-- your config omitted for brevity -->
  <dependencies>
    <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <version>2.3.1</version>
    </dependency>
  </dependencies>
</plugin>

尽管这只是添加了jaxbapi,而不是实际的实现。一种可能的实现是glassfish:

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

也可以添加到同一节中。
同样,我不完全确定这是否可行(因为使用java8,jaxb应该出现在类路径上),但值得一试。

相关问题