簡體   English   中英

maven-jaxws-tools-plugin錯誤:ClassNotFoundException

[英]maven-jaxws-tools-plugin Error: ClassNotFoundException

將我們的構建從Ant切換到Maven,我正在嘗試從WSDL文件生成代碼。

maven-jaxws-tools-plugin ,但我總是得到一個例外。 我還不完全清楚這個插件還有哪些依賴項。

插件配置:

<plugin>
  <groupId>org.jboss.ws.plugins</groupId>
  <artifactId>maven-jaxws-tools-plugin</artifactId>
  <version>1.1.1.Final</version>
  <configuration>
    <targetPackage>at.dataphone.logis3.wsdl.${projectName}</targetPackage>
    <extensions>true</extensions>
    <wsdls>
      <wsdl>${basedir}/wsdl/DPHItemBarcodesList.wsdl</wsdl>
    </wsdls>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>wsconsume</goal>
      </goals>
    </execution>
  </executions>
</plugin>

沒有額外的deps我得到:

ClassNotFoundException:org.jboss.ws.api.tools.WSContractConsumer

然后我補充說:

<dependency>
  <groupId>org.jboss.ws.native</groupId>
  <artifactId>jbossws-native-client</artifactId>
  <version>4.0.2.GA</version>
</dependency>

所以我得到:

java.lang.ClassNotFoundException:com.sun.tools.ws.wscompile.WsimportTool`

如果我補充:

<dependency>
  <groupId>com.sun.xml.ws</groupId>
  <artifactId>jaxws-tools</artifactId>
  <version>2.2.7</version>
</dependency>

但我得到:

java.lang.ClassNotFoundException:org.jboss.util.xml.JBossEntityResolver`

所以這一直在繼續。 但我感覺,我不希望所有這些編譯時依賴,並且我可能需要一種方法來告訴插件我的JBoss安裝與它的模塊。

這個插件只有一些文檔。

有這個示例: https//developer.jboss.org/wiki/JAXWSToolsMavenPluginSample

jbossws-cxf-client不能是依賴項,這是舊代碼並使用jbossws-native。 我也不確定jboss-as-maven-plugin是否與它有任何關系,但我不想部署,只生成代碼。 雖然它沒有正常工作,但我確實有插件設置。 但是運行mvn jboss-as:deploy在它可以進行任何部署之前,它仍然在jaxws-plugin上失敗。

這個例子略有不同,但並不多: https//github.com/tkobayas/example-projects/blob/master/helloworld_jaxws_cxf/pom.xml

我不熟悉maven-jaxws-tools-plugin但你不需要添加編譯時依賴項:你只需要將這些依賴項添加為插件依賴項

<plugin>
  <groupId>org.jboss.ws.plugins</groupId>
  <artifactId>maven-jaxws-tools-plugin</artifactId>
  <version>1.1.1.Final</version>
  <configuration>
    <targetPackage>at.dataphone.logis3.wsdl.${projectName}</targetPackage>
    <extensions>true</extensions>
    <wsdls>
      <wsdl>${basedir}/wsdl/DPHItemBarcodesList.wsdl</wsdl>
    </wsdls>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>wsconsume</goal>
      </goals>
    </execution>
  </executions>
  <dependencies>
    <dependency>
      <groupId>org.jboss.ws.native</groupId>
      <artifactId>jbossws-native-client</artifactId>
      <version>4.0.2.GA</version>
    </dependency>
    <dependency>
      <groupId>com.sun.xml.ws</groupId>
      <artifactId>jaxws-tools</artifactId>
      <version>2.2.7</version>
    </dependency>
  </dependencies>
</plugin>

這樣,這些依賴項將僅在插件執行期間使用,並且不會添加到項目編譯時依賴項中。 當然,只有當您的項目不依賴於編譯時的項目時才應該這樣做。

然后,您可以在此標記中添加所有必需的依賴項。 對於類org.jboss.util.xml.JBossEntityResolver ,看起來列表中的下一個是jboss-common-core ...


另外,您應該考慮使用Apache CXF項目中的cxf-codegen-plugin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM