2011-03-08 118 views
5

我以前使用wsimport生成了一個Metro客戶端,但在這種情況下,通過https訪問WSDL。我的逗號是這樣的:使用本地WSDL文件生成Metro客戶端

wsimport https://service.net/services/Service?wsdl -d C:\ClientProject\src\main\java -keep 

和一切工作正常。現在我試圖生成一個客戶端,但是,我只有WSDL文件的本地副本。我的項目目錄設置像這樣(在C:\傑韋利):

ClientProject 
    |- src 
    |- main 
     |- java 
    |- resources 
     |- META-INF 
      |- service.wsdl 
    |- wsimport.bat 

的wsimport.bat文件看起來是這樣的:

wsimport -keep -d ../src/main/java -wsdlLocation ../src/resources/META-INF/service.wsdl 

這是基於地鐵指南的例子,但沒有-p選項(http://metro.java.net/guide/Developing_client_application_with_locally_packaged_WSDL.html)。但是,當我運行bat文件時,我將無限循環的命令打印到控制檯。例如。

C:\Devel\ClientProject>wsimport -keep -d ../src/main/java -wsdlLocation ../src/resources/META-INF/service.wsdl 

有人可以指出我做錯了什麼嗎?

UPDATE

我已經使用絕對路徑(和重新排列帕拉姆爲了無濟於事我仍然得到無盡的命令控制檯打印嘗試:如果使用

wsimport C:\Devel\ClientProject\src\resources\META-INF\service.wsdl -d C:\Devel\ClientProject\src\main\java -keep 

回答

7

http://www.java.net/forum/topic/glassfish/metro-and-jaxb/problems-generating-client-using-local-wsdl-file#comment-812705

。運行wsimport命令的.bat文件,不要將其命名爲wsimport,否則您將處於調用該文件的無限遞歸循環中。

此外,「-wsdllocation」區分大小寫。 「-wsdlLocation」將不起作用(儘管我在搜索過程中看到過很多示例)。

此的wsimport命令生成從本地WSDL的客戶端代碼,並設置在服務類「wsdlLocation」屬性註釋@WebServiceClient:

wsimport src/resources/META-INF/service.wsdl -keep -d src/main/java -wsdllocation META-INF/service.wsdl 
相關問題