IWAB0399E Error in generating Java from WSDL: java.io.IOException: ERROR: Missing <soap:fault> element inFault

java, soap, wcf, web-services

Solution

I have discovered that AXIS2 will work just fine with the tags. AXIS2 requires very minimal additional set-up to the eclipse IDE. I will try to get the java guys to utilize that.

Here is a good explanation of making both SOAP 1.1 and SOAP 1.2 available for a WCF service.

Problem

I have a WCF 4.0 service for internal use. Another team is trying to consume it in Java. ``` IWAB0399E Error in generating Java from WSDL: java.io.IOException: ERROR: Missing <soap:fault> element inFault "PasswordReuseFaultFault" ... ``` One source suggests it may be a Soap 1.1 vs. Soap 1.2 issue Indeed my WCF generated WSDL ``` <wsdl:fault name="PasswordReuseFaultFault"> <wsp:PolicyReference URI="#blah_blah_blah_PasswordReuseFaultFault_Fault"/> <soap12:fault name="PasswordReuseFaultFault" use="literal"/> </wsdl:fault> ``` notice the `<soap12:fault>`instead of the expected `<soap:fault>` I'm pretty sure that is the cause of the problem. - How do I get WCF to generate soap 1.1 WSDL ? or - What should I tell the Java team to do so their tools can understand the newer protocol? Edit: I found out that basicHttpBinding uses SOAP 1.1 and puts the expected `<soap:fault>` in the WSDL, where wsHttpBinding puts `<soap12:fault>` (using the SOAP 1.2 spec I guess.) I found some suggestions that using Axis instead of the IDE tool will yield better results, I'm not sure if I can get the Java team to buy into that.

Original source