我正在使用Maven生成不正確的java存根文件,因爲未在java存根文件的適當行上生成 xmlns:t = \「http://docs.oasis-open.org/ws-sx/ws-trust/200512 \」 。 我是新手,但以下是我正在使用的代碼片段。 想知道如果adb vs xmlbeans是一個可能的問題?maven wsdl2code生成不正確的java存根文件
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>1.6.2</version> <!-- do not want to change since rebuilding existing webapp -->
<configuration>
<wsdlFile>src/main/resource/wsdl/wsdlfile.wsdl</wsdlFile>
<databindingName>adb</databindingName>
<packageName>com.vendorproduct.ws.wsdl</packageName>
<outputDirectory>src/main/java</outputDirectory>
<unpackClasses>true</unpackClasses>
<unwrap>true</unwrap>
<syncMode>sync</syncMode>
</configuration>
<executions>
<execution>
<goals>
<goal>wsdl2code</goal>
</goals>
</execution>
</executions>
</plugin>
無法提供,因爲需要10聲譽點後超過2個鏈接剪斷生成的代碼,但問題是,生成的代碼是缺失的xmlns:T = \「http://docs.oasis-open.org/ws-sx/ws-trust/200512 \」,並因此獲得運行時錯誤「未申報名稱空間前綴「t」'。
嘗試使用JAXWS-Maven的插件(下文中略),但得到: 無法執行目標org.jvnet.jax-WS-公地:JAXWS-Maven的插件:2.1:wsimport的(wsdla)項目vendorproduct:執行時出錯:wsimport [-s,H:\ Folder \ src \ main \ java \ src,-d,H:\ Folder \ target \ classes,-verbose,-p,com.vendorproduct,-Xnocompile,H:\ Folder \ SRC \主\資源\ filename.wsdl]
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>wsdla</id>
<phase>generate-sources</phase>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
<configuration>
<packageName>com.vendorproduct</packageName>
<sourceDestDir>src/main/java</sourceDestDir>
<wsdlFiles>
<wsdlFile>
${basedir}/src/main/resources/filename.wsdl
</wsdlFile>
</wsdlFiles>
<bindingDirectory> <!-- Is this only used for generation output? -->
${basedir}/src/wsdl/binding
</bindingDirectory>
<verbose>true</verbose>
</configuration>
</plugin>
再回到Axis2的-wsdl2code - Maven的插件,並試圖爲databindingname XMLBeans的,但得到的編譯錯誤:(相信都Axis2的依賴,包括公理API - 1.2.13和axiom-impl-1.2.13) 找不到適合toEnvelope的方法(org.apache.axi om.soap.SOAPFactory,com.rightnow.ws.messages.GetMetaDataDocument,boolean) com.rightnow.ws.wsdl.RightNowSyncServiceStub.toEnvelope(org.apache.axiom.soap.SOAPFactory,org.apache.xmlbeans.XmlString, org.apache.xmlbeans.XmlString,com.rightnow.ws.messages.GetValuesForNamedIDDocument,布爾)不適用 (實際的和正式的參數列表的長度不同)
即使有編譯錯誤,但它確實產生存根文件以相同的不正確的方式沒有xmlns:t。
切換回使用adb。 我使用Maven 3.5.0進行了驗證,並在命令行上嘗試了'mvn package',但是在沒有xmlns:t的情況下以相同的不正確方式生成Stub文件。
Axis2開發人員郵件列表說,Axis2 1.6.2已超過5年,不支持。 將不得不修改「舊」源代碼以使用Axis2的最新版本(和支持的版本)。 是Axis2 1.7.5的最佳選擇?
你能展示它產生了什麼? – Alexander
(__operation).getMessage(org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_OUT_VALUE).getPolicySubject()。attachPolicy(getPolicy(「 MISSING xmlns:t HERE 等等。 –
Robert
任何特定的原因,您正在使用'axis2-wsdl2code-maven-plugin '?您是否考慮過使用[jaxws-maven-plugin](http://www.mojohaus.org/jaxws-maven-plugin/)? –