Hi all,
i'm facing this issue. I try to generate the java files from this wsdl
<wsdl:operation name="RefundTransaction">
<soap:operation soapAction="RefundTransaction" />
<wsdl:input><soap:body use="literal" /></wsdl:input>
<wsdl:output><soap:body use="literal" /></wsdl:output>
</wsdl:operation>
And the generator throws this exception:
Using AXIS2_HOME: D:\java\axis2-1.4\
Using JAVA_HOME: C:\Program Files\Java\jre1.6.0_05
Retrieving document at 'OIContentProviderv0.2.wsdl'.
Exception in thread "main"
org.apache.axis2.wsdl.codegen.CodeGenerationException:
org.apache.axis2.wsdl.codegen.CodeGenerationException:
java.lang.RuntimeException: Element QName is null for ErrorResponseMessage!
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(
CodeGenerationEngine.java:271)
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.wsdl.codegen.CodeGenerationException:
java.lang.RuntimeException: Element QName is null for ErrorResponseMessage!
at org.apache.axis2.wsdl.codegen.emitter.
AxisServiceBasedMultiLanguageEmitter.emitStub(AxisServiceBasedMultiLanguageE
mitter.java:534)
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(
CodeGenerationEngine.java:260)
... 2 more
Caused by: java.lang.RuntimeException: Element QName is null for
ErrorResponseMessage!
at org.apache.axis2.wsdl.codegen.emitter.
AxisServiceBasedMultiLanguageEmitter.getFaultParamElements(
AxisServiceBasedMultiLanguageEmitter.java:2829)
at org.apache.axis2.wsdl.codegen.emitter.
AxisServiceBasedMultiLanguageEmitter.getFaultElement(
AxisServiceBasedMultiLanguageEmitter.java:2748)
at org.apache.axis2.wsdl.codegen.emitter.
AxisServiceBasedMultiLanguageEmitter.generateMethodElement(
AxisServiceBasedMultiLanguageEmitter.java:2269)
at org.apache.axis2.wsdl.codegen.emitter.
AxisServiceBasedMultiLanguageEmitter.loadOperations(
AxisServiceBasedMultiLanguageEmitter.java:2151)
at org.apache.axis2.wsdl.codegen.emitter.
AxisServiceBasedMultiLanguageEmitter.createDOMDocumentForCallbackHandler(
AxisServiceBasedMultiLanguageEmitter.java:1151)
at org.apache.axis2.wsdl.codegen.emitter.
AxisServiceBasedMultiLanguageEmitter.writeCallBackHandlers(
AxisServiceBasedMultiLanguageEmitter.java:1117)
at org.apache.axis2.wsdl.codegen.emitter.
AxisServiceBasedMultiLanguageEmitter.emitStub(AxisServiceBasedMultiLanguageE
mitter.java:497)
... 3 more
I found that the problem is the missing "fault" definition.
I i try this, it works:
<wsdl:operation name="RefundTransaction">
<soap:operation soapAction="RefundTransaction" />
<wsdl:input><soap:body use="literal" /></wsdl:input>
<wsdl:output><soap:body use="literal" /></wsdl:output>
<wsdl:fault name="fault"><soap:fault use="literal"
name="fault"/></wsdl:fault>
</wsdl:operation>
Why? AFAIK, this is not mandatory... am i wrong?
And it would be nice to get a better error message.
thanks in advance!
Juan