2014-04-10 51 views
0

我見過很多關於錯誤的帖子 com.sun.xml.internal.ws.server.ServerRtException:[未能本地化] cannot.load.wsdl 但是響應似乎都處理變通方法,比如使用WEB-INF,而不是解釋爲什麼WebService註釋的文檔只是簡單地聲明URL字符串是相對路徑或絕對路徑時是不準確的。即使是不可移植的文件:// /結構開始於C:驅動器的根目錄不起作用,更不用說相對於我的類路徑的東西了。@WebService(wsdlLocation =不像廣告

沒有強制?wsdl查詢響應父類的WSDL,它是一個無用的查詢,與它爲當前可以使用本地副本的客戶端定義特定的服務WSDL訪問單個服務器可能實現或可能不實現的標準化服務列表。事實上,?wsdl是一個簡單的GET查詢,這讓它很可笑,它的響應不是更直接的可定製的,但我堅持這個記錄不完善(一行,10字以下),看似片狀的「工具」。

請不要告訴我你實施項目的具體方式。我已經在這個相對不重要的「便利」上浪費了太多時間,而且完全不可能完全重新設計。如果您沒有答案或有效的簡單示例,請提前感謝您不要以這種方式混淆回覆。

我正在使用Eclipse Indigo SR2 Build ID:20120216-1857; eclipse默認的工作區JRE系統庫;以及必要時可包含的jar列表,​​但目前唯一似乎具有相關外圍可能性的jar是javax.persistence_2.0.4.201112161009.jar。我還使用@BindingType(value =「http://java.sun.com/xml/ns/jaxws/2003/05/soap/bindings/HTTP/」) ,因爲客戶似乎能夠從WSDL,即使服務器也使用從同一個WSDL生成的代碼,它似乎毫無頭緒!

順便說一句,爲防萬一它在Eclipse Console環境中可能有些碎片,我重新構建了jar並將其複製到一個新路徑的最小配置子目錄中以隔離它,以及另一個包含WSDL文件的類路徑,而且出現了同樣的錯誤。

回答

0

好的,在學習了構成端點實現的部分棄用代碼的GrepCode列表後,我發現可能我的類路徑資源沒有通過,因此我將「this」參數轉換爲與child相關的類型,無論出於何種原因,我都有一個新的錯誤,一個CATCH-22!它告訴我,父WSDL中列出的服務不包含以子名命名的服務。爲什麼他們?!

javax.xml.ws.WebServiceException:WSDL ...有以下服務...但不是...也許你忘了在@ WebService/@ WebServiceProvider中指定一個serviceName和/或targetNamespace?

那麼,我會嘗試指定serviceName和/或targetNamespace,看看是否消除了這些無根據的推定,但如果這樣做不起作用,我已經花了很多時間不計較。

...

顯然,各種形式Endpoint.publish()的不包括指定的QName,不會讓這些不必要的和無根據的假設。無論是那個或wsdlLocation是內部消費,而不是發佈!

0

哇!在調整了name和serviceName(如果name是「服務的名稱」似乎差異很小,所以我使它們相同)之後,在猜測它將是什麼並最終使用WSDL中的一個之後添加一個portName,並設置來自WSDL的targetNameSpace,我實際上得到了一個?wsdl響應似乎與我一直試圖得到的一致,除了間距不同之外,我沒有看到diff選項來比較多行組與單行之間的差異。唯一可以肯定的方法是修改我的一個客戶端,看看它是否在?wsdl查詢URL上發生窒息現象!

最後,爲了確保這個有點意識流的帖子出現在別人尋找某個與類似問題相關的東西的搜索中,萬一我忽略了引用原始錯誤,在這裏它是:

com.sun.xml.internal.ws.server.ServerRtException:未能本地化] cannot.load.wsdl

我希望將證明我的散漫! (順便說一下,是的,它最終與我的客戶合作!)