2010-12-11 144 views
0

我想從wsdl使用axis2 wsdl2java轉換器創建java文件。問題是我不斷得到這個奇怪的例外,我不能真正解釋。Apache axis2 wsdl2java異常:未知協議:d

目前我正在使用維基百科中的示例代碼來測試它。

基本上我每次打電話,我得到這個異常的時間這樣的程序

wsdl2java -o "D:\Examples\SOAP" -wv 2 -uri "D:\Examples\test.wsdl" 

而且

Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException 
: Error parsing WSDL 
    at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java:159) 
    at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35) 
    at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24) 
Caused by: WSDLException: faultCode=ERROR: Exception occured while reading WSDL 
2.0 doc: unknown protocol: d: org.apache.axis2.AxisFault: unknown protocol: d 
    at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) 
    at org.apache.axis2.description.WSDL20ToAxisServiceBuilder.readInTheWSDL 
File(WSDL20ToAxisServiceBuilder.java:1172) 
    at org.apache.axis2.description.WSDL20ToAxisServiceBuilder.<init>(WSDL20 
ToAxisServiceBuilder.java:153) 
    at org.apache.axis2.description.WSDL20ToAllAxisServicesBuilder.<init>(WS 
DL20ToAllAxisServicesBuilder.java:53) 
    at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java:102) 
    at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35) 
    at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24) 
Caused by: java.net.MalformedURLException: unknown protocol: d 
    at java.net.URL.<init>(URL.java:574) 
    at java.net.URL.<init>(URL.java:464) 
    at java.net.URL.<init>(URL.java:413) 
    at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) 
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) 
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) 
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180) 
    at org.apache.axis2.description.WSDL20ToAxisServiceBuilder.readInTheWSDL 
File(WSDL20ToAxisServiceBuilder.java:1168) 
    ... 5 more 

    at org.apache.axis2.description.WSDL20ToAxisServiceBuilder.<init>(WSDL20 
ToAxisServiceBuilder.java:155) 
    at org.apache.axis2.description.WSDL20ToAllAxisServicesBuilder.<init>(WS 
DL20ToAllAxisServicesBuilder.java:53) 
    at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java:102) 
    ... 2 more 

有誰知道可能會導致什麼呢?

編輯 例外2:

Woden[Warning],0:0,Description-1001,The targetNamespace 'http://www.tmsws.com/wsdl20sample' is not dereferencable. 
Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException 
: Error parsing WSDL 
    at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java:153) 
    at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35) 
    at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24) 
Caused by: org.apache.axis2.AxisFault: Unable to find element {http://www.tmsws.com/wsdl20sample}request reffered to by operation Get 
    at org.apache.axis2.description.WSDL20ToAxisServiceBuilder.createAxisMessage(WSDL20ToAxisServiceBuilder.java:1112) 
    at org.apache.axis2.description.WSDL20ToAxisServiceBuilder.populateOperations(WSDL20ToAxisServiceBuilder.java:1053) 
    at org.apache.axis2.description.WSDL20ToAxisServiceBuilder.processInterface(WSDL20ToAxisServiceBuilder.java:956) 
    at org.apache.axis2.description.WSDL20ToAxisServiceBuilder.processService(WSDL20ToAxisServiceBuilder.java:384) 
    at org.apache.axis2.description.WSDL20ToAxisServiceBuilder.populateService(WSDL20ToAxisServiceBuilder.java:272) 
    at org.apache.axis2.description.WSDL20ToAllAxisServicesBuilder.populateAllServices(WSDL20ToAllAxisServicesBuilder.java:90) 
    at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java:105) 
    ... 2 more 
+0

WSDL的外觀如何?它有沒有對'd:'的任何引用? – skaffman 2010-12-11 15:26:07

+0

我說我目前使用維基百科的例子,它是http://en.wikipedia.org/wiki/Wsdl – dominos 2010-12-11 15:33:26

回答

1

wsdl2java -o "D:\Examples\SOAP" -wv 2 -uri "file:/D:/Examples/test.wsdl"

wsdl2java嘗試從D:\... URL閱讀,你需要指定URL(我想有辦法來指定一個本地文件,而不是URL )。

+0

不幸的是仍然得到相同的異常 – dominos 2010-12-11 15:24:38

+0

@dominos確保該文件包含有效的WSDL數據並更新堆棧跟蹤你的帖子,請。 – khachik 2010-12-11 15:26:53

+0

我不認爲找到該文件是問題,因爲如果我將wv更改爲1.1,則它將開始抱怨正在使用描述標記而不是定義(這意味着它已經找到該文件)。也不需要更新堆棧跟蹤,因爲當我添加文件時異常保持完全相同:並更改了斜線。 – dominos 2010-12-11 15:32:12