我在整個Web上都看到過這個問題,但仍未找到適用於我的明確解決方案。這裏的問題:在Java中創建Web服務客戶端時的錯誤
我想在Java中創建一個Web服務客戶端。客戶端需要是一個控制檯應用程序,它將放置在服務器上,並以特定的時間間隔自動運行。我試圖使用的Web服務是由第三方公司主持編寫的。該服務是用ASP.NET編寫的。有問題的公司有我們碰到的幾項服務。所有這些都是用ASP.NET編寫的。直到兩天前,我才從事這些服務的處理,當時我負責消費2項服務並從數據中構建Excel電子表格。在繼續之前,讓我描述一下我的開發環境。一些這方面是相關的,有些是沒有,但我想包括一切:
- Windows 7專業版32位
- NetBeans IDE的6.9.1
- 的Java JDK 1.6.0_17
- JRE6
- Glassfish的3開源全平臺發行
- 所有軟件已經有了所有可用的更新應用
解決問題。當我將第一個Web服務客戶端添加到我的控制檯應用程序時,我對這個過程的順利進行感到驚訝。我寫Web服務應用程序的大部分經驗都在.NET中。我能夠在第一次嘗試時導入WSDL和NetBeans生成的所有類。在5分鐘內,我能夠打電話給我的第一個服務,並得到了預期的響應,讓我知道我的嘗試是成功的。然後,我使用第二個WSDL所需的地址將第二個Web Service Client添加到控制檯應用程序。這是我遇到的一個主要問題。
在導入WSDL,我被NetBeans的聲明提醒的錯誤:
Web服務客戶端無法通過JAXWS創建:wsimport的實用工具。
原因:未定義元素聲明的:模式'
濫用谷歌下一個小時的尋找解決的辦法,我終於決定申請一些試驗和錯誤。查看NetBeans中的Output窗口,我可以看到它抱怨了3條特定的行。有一次,我在WSDL接過一看,我可以看到那些3線都是一模一樣的,如下:
<s:element ref="s:schema" />
這3條線路在隨機的地方被發現從WSDL的頂部,下降到約一半通過。我從Web服務引用文件夾中找到的WSDL中刪除了這些行,將WSDL保留在META-INF文件夾中。然後我對服務參考進行了刷新,讓我感到意外的是,NetBeans解析了WSDL並像以前一樣生成了我的類。很好,對吧?那麼,這裏是#2問題的起因。
既然我能夠編譯我的應用程序沒有錯誤,我不得不嘗試擊中服務,看看我的黑客是否工作。它沒。由於JAXWS中存在另一個錯誤,在創建服務對象時,我必須在構造函數中爲WSDL提供URL。這意味着我修正的WSDL被忽略,服務現在回到使用無法解析的WSDL。當我試圖提供我在項目中本地編輯的WSDL的位置時,遇到另一個編譯錯誤,指出我有一個NullPointerException。它說我需要在使用它之前初始化對象。
我研究了本網站上尋找和嘗試提供任何解決方案的無限量主題。我也嘗試過來自全網的解決方案,所有這些都沒有運氣。如果有人對我有任何建議,任何提示,技巧,黑客,請讓我知道。我願意接受任何建議。
在此先感謝您提供的任何幫助。
這可能是相關的:http://weblogs.java.net/blog/vivekp/archive/2007/05/how_to_deal_wit_1.html – 2011-05-04 20:23:48