2009-12-07 33 views
0

我們的應用程序提供了一個SOAP API。我們的WSDL開始行是像wsdl xmlns NetBeans和wsimport的問題

<wsdl:definitions name='ControlDServices' ... xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' ... 

這通常工程確定,但客戶抱怨說,當他們嘗試使用我們的SOAP API與WSDL的NetBeans我們提供他們得到了這個錯誤:

Web Service can not be created by JAXWS:wsimport utility. 
Reason: invalid extension element: "soap:body" (in namespace "http://schemas.xmlsoap.org/wsdl/soap/") 

這可以通過運行很容易再創建:

wsimport -d . -extension -Xnocompile -keep -s . -verbose <our wsdl file> 

wihch產生錯誤:

[ERROR] invalid extension element: "soap:body" (in namespace "http://schemas.xmlsoap.org/wsdl/soap/") 
unknown location 

我們的支持發現,改變的xmlns:SOAP定義使用http://www.w3.org/2001/12/soap-envelope/解決了這個問題,但是這需要我們的產品的變化,也是矛盾最讓我在網絡上看到的地方,其中一個WSDL:定義文件被定義。此外,該URI似乎屬於soap-envelop而不屬於wsdl,並且也適用於特定的日期,而不是一般的URI。

有沒有辦法解決NetBeans/wsimport問題而無需更改我們的wsdl,例如通過改變參數?如果不是,並且需要更改,將其更改爲http://www.w3.org/2001/12/soap-envelope/是明智的,還是應該使用其他方法?

感謝
splintor

回答

0

看起來他們不支持SOAP 1.1,只有SOAP 1.2。

+0

那麼,我應該使用什麼名稱空間URI? – splintor 2009-12-09 19:25:12

+0

你沒有做錯什麼 - 他們也不是。你只是不兼容。看看他們是否可以處理SOAP 1.1,也許有'-soap11'開關?否則,你的應用程序將需要支持SOAP 1.2,這不僅僅是一個命名空間的變化。你的應用程序在哪個平臺上運行? – 2009-12-09 20:55:51