![](/img/trans.png)
[英]Having issue using jaxws-maven-plugin no error but no class generated
[英]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.