2013-06-27 44 views
1

我想CXF使用有效的字符,我試圖用CXF-CODEGEN-插件的WSDL2Java Maven來生成從提供的WSDL的客戶端stub:冒號不在的targetNamespace CXF-CODEGEN-插件的WSDL2Java

問題是目標名稱被命名爲:

http://ip:port/ws/EndpointName.inbound.ws:companyName 

和Maven產生來源相失敗:

[ERROR] Failed to execute goal org.apache.cxf:cxf-codegen-plugin:2.7.5:wsdl2java (generate-jaxb) on project: Execution generate-jaxb of goal org.apache.cxf:cxf-codegen-plugin:2.7.5:wsdl2java failed: org.apache.cxf.tools.common.ToolException: : is not a valid char in the targetNamespace -> [Help 1] 

我相信端點使用webMethods開發。託管此WS端點的公司告訴我他們無法控制目標名稱空間。

我試圖通過

/companyName 

客戶存根生成remplacing

:companyName 

去罰款,但我得到一個錯誤,當我嘗試聯繫他們的服務器:

Caused by: javax.ejb.EJBException: javax.xml.ws.WebServiceException: Could not find service named {http://ip:port/ws/EndpointName.inbound.ws/companyName}WebServiceName in wsdl http://ip:port/ws/EndpointName.inbound.ws:companyName?WSDL 

任何想法? 我應該切換到axis2以與WebMethods兼容嗎?

非常感謝

+0

嗨,chienlou!你有沒有解決這個問題?請問,請分享,你是如何做到的,因爲提到的答案並沒有幫助我? –

回答

0

我覺得如果你添加-validate = none,以便WSDL2Java的命令,它會繞過檢查。

+0

不適用於我使用cxf-codegen-plugin,使用「 -validate = none」。 (在配置/ wsdlOptions/wsdlOption下)。這是否必須以不同的方式傳遞?我已經嘗試過CXF版本2.7.12和3.0.1 .. – 0x89

+0

不適用於maven-jaxws-tools-plugin –

+0

你可以檢查@oguzhankinik的答案。 – kamaci

2
": is not a valid char in the targetNamespace" 

通過CXF-6527解決。

您應該將您的Apache CXF版本更新爲新版本。已解決該問題的問題有Fix Version/s:3.1.3, 2.7.18, 3.0.7