2010-12-11 65 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