2010-12-11 4 views
0

Я пытаюсь создать java-файлы из wsdl с помощью конвертера axis2 wsdl2java. Проблема в том, что я продолжаю получать это странное исключение, которое я не могу объяснить.Apache axis2 wsdl2java exception: неизвестный протокол: 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

+0

Я сказал, что использую пример википедии в настоящий момент, который находится по адресу http://en.wikipedia.org/wiki/Wsdl – dominos

ответ

1

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

wsdl2java пытается прочитать из D:\... URL, необходимо указать URL-адрес (я думаю, что есть способ указать локальный файл вместо URL).

+0

Все равно получите то же самое, к сожалению, – dominos

+0

@dominos. Убедитесь, что файл содержит достоверные данные WSDL и обновляет stacktrace в ваше сообщение, пожалуйста. – khachik

+0

Я не думаю, что найти файл является проблемой, потому что если я изменю wv на 1.1, тогда он начнет жаловаться на использование тега описания вместо определений (что означает, что он уже нашел файл). Также нет необходимости обновлять трассировку стека, поскольку исключение оставалось точно таким же, когда я добавлял файл: и сменил косые черты. – dominos

Смежные вопросы