Hi All,

I am having a problem with how some WSDL is being parsed. I think what is 
happening is that I am receiving a FAULT message which we have somehow not 
'told' xerces to expect (through the WSDL itself).

Question 1.
============

If the operation on a WSDL portType defines a fault message which is not 
mirrored in the binding element. Does this matter? Could this mean that if 
xerces found a fault message it wouldn't expect it - and thus find itself in 
error?

I have in my project the following WSDL portType:

<portType name="CMLeJobSoapGetEmpBrand">
  <operation name="EJobGetEmpBrand">
    <input message="tns:EJobEmpBrdReq" name="EJobEmpBrdReq"/>
    <output message="tns:EJobGetEmpBrdRes" name="EJobGetEmpBrdRes"/>
    <fault message="tns:Fault" name="Fault"/>
  </operation>
</portType>

and a binding to match it:

<binding name="MS_ALPHA_EJOB_PRJHTTP_SOAP_Binding_GetEmpBrand"
    type="tns:CMLeJobSoapGetEmpBrand">
  <soap:binding style="document"
      transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="EJobGetEmpBrand">
    <soap:operation style="document" soapAction=""/>
    <input name="EJobEmpBrdReq">
      <soap:body encodingStyle=""
          parts="EJobEmpBrdReqBody" use="literal"/>
    </input>
    <output name="EJobGetEmpBrdRes">
      <soap:body encodingStyle=""
          parts="EJobGetEmpBrdResBody" use="literal"/>
    </output>
  </operation>
</binding>


Question 2.
============

The underlying problem is that my Java parser is throwing an exception (full 
trace at end of this message):
java.lang.Exception: WSWS3379E: Error: Prefix 
http://schemas.xmlsoap.org/soap/envelope/ is undefined.

This was in response to a FAULT message (below) and the error looks as though 
xerces didn't understand how to parse a fault - as though it wasn't expecting 
it or something.

<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
  <soapenv:Body>
    <soapenv:Fault>
      <faultcode>http://schemas.xmlsoap.org/soap/envelope/:EAI</faultcode>
      <faultstring>Failure in EAI message processing</faultstring>
      <faultactor>http://udeaib01:7080/CMLeJob/EJobFindDept</faultactor>
      <detail>The request for service 01:7080/CMLeJob/EJobFindDept failed.2230 
Caught exception and rethrowing,ImbComputeNode::evaluate,2488 Error detected, 
rethrowing,SqlStatementGroup::execute,2949 User Generated SQL 'USER' 
exception,SqlThrowExceptionStatement::execute,</detail>
    </soapenv:Fault>
  </soapenv:Body>
</soapenv:Envelope>


Full trace for the exception I received:

2005-12-28 10:30:59,798 FATAL com.ibm.ws.webservices.engine.InternalException - 
WSWS3227E:  Error: Exception:
java.lang.Exception: WSWS3379E: Error: Prefix 
http://schemas.xmlsoap.org/soap/envelope/ is undefined.
        at 
com.ibm.ws.webservices.engine.InternalException.<init>(InternalException.java:124)
        at 
com.ibm.ws.webservices.engine.encoding.ser.QNameDeserializer.makeValue(QNameDeserializer.java:119)
        at 
com.ibm.ws.webservices.engine.encoding.ser.SimpleDeserializer.onEndElement(SimpleDeserializer.java:209)
        at 
com.ibm.ws.webservices.engine.encoding.Deserializer.endElement(Deserializer.java:590)
        at 
com.ibm.ws.webservices.engine.events.DEventProcessor.onSimpleChild(DEventProcessor.java:243)
        at 
com.ibm.ws.webservices.engine.events.P2DConverter.flush(P2DConverter.java:728)
        at 
com.ibm.ws.webservices.engine.events.P2DConverter.endElement(P2DConverter.java:395)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
 Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(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.AbstractSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at 
com.ibm.ws.webservices.engine.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:251)
        at 
com.ibm.ws.webservices.engine.SOAPPart.getSOAPEnvelope(SOAPPart.java:882)
        at com.ibm.ws.webservices.engine.SOAPPart.getFault(SOAPPart.java:1262)
        at com.ibm.ws.webservices.engine.Message.getFault(Message.java:757)
        at 
com.ibm.ws.webservices.engine.Message.ifFaultThrowSelf(Message.java:737)
        at 
com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:252)
        at 
com.ibm.ws.webservices.engine.WebServicesEngine.invoke(WebServicesEngine.java:255)
        at 
com.ibm.ws.webservices.engine.client.Connection.invokeEngine(Connection.java:688)
        at 
com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:614)
        at 
com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:444)
        at 
com.ibm.ws.webservices.engine.client.Stub$Invoke.invoke(Stub.java:662)
        at 
com.cml.hr.portal.eai.webservices.sap.MS_ALPHA_EJOB_PRJHTTP_SOAP_Binding_FindPositionsStub.EJobFindPositions(MS_ALPHA_EJOB_PRJHTTP_SOAP_Binding_FindPositionsStub.java:112)
        at 
com.cml.hr.portal.eai.webservices.sap.FindPositionsTestCase.testFindPositions(FindPositionsTestCase.java:115)
        at java.lang.reflect.Method.invoke(Native Method)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:329)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:218)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:151)
2005-12-28 10:30:59,844 ERROR com.ibm.ws.webservices.engine.PivotHandlerWrapper 
- WSWS3400I: Info: unexpected exception.
java.lang.NullPointerException
        at java.io.FilterInputStream.read(FilterInputStream.java:128)
        at com.ibm.ws.webservices.engine.SOAPPart.getBytes(SOAPPart.java:671)
        at com.ibm.ws.webservices.engine.SOAPPart.getString(SOAPPart.java:788)
        at com.ibm.ws.webservices.engine.SOAPPart.getAsString(SOAPPart.java:582)
        at 
com.ibm.ws.webservices.engine.SOAPPart.getSOAPEnvelope(SOAPPart.java:888)
        at com.ibm.ws.webservices.engine.SOAPPart.getFault(SOAPPart.java:1262)
        at com.ibm.ws.webservices.engine.Message.getFault(Message.java:757)
        at 
com.ibm.ws.webservices.engine.Message.ifFaultThrowSelf(Message.java:737)
        at 
com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:252)
        at 
com.ibm.ws.webservices.engine.WebServicesEngine.invoke(WebServicesEngine.java:255)
        at 
com.ibm.ws.webservices.engine.client.Connection.invokeEngine(Connection.java:688)
        at 
com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:614)
        at 
com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:444)
        at 
com.ibm.ws.webservices.engine.client.Stub$Invoke.invoke(Stub.java:662)
        at 
com.cml.hr.portal.eai.webservices.sap.MS_ALPHA_EJOB_PRJHTTP_SOAP_Binding_FindPositionsStub.EJobFindPositions(MS_ALPHA_EJOB_PRJHTTP_SOAP_Binding_FindPositionsStub.java:112)
        at 
com.cml.hr.portal.eai.webservices.sap.FindPositionsTestCase.testFindPositions(FindPositionsTestCase.java:115)
        at java.lang.reflect.Method.invoke(Native Method)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:329)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:218)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:151)
2005-12-28 10:30:59,876 INFO com.ibm.ws.webservices.engine.enterprise - 
WSWS3243I: Info: Mapping Exception to WebServicesFault.
WebServicesFault
 faultCode: Server.generalException
 faultString: WSWS3400I: Info: unexpected exception.
 faultActor: null
 faultDetail:

WSWS3400I: Info: unexpected exception.
java.lang.NullPointerException
        at java.io.FilterInputStream.read(FilterInputStream.java:128)
        at com.ibm.ws.webservices.engine.SOAPPart.getBytes(SOAPPart.java:671)
        at com.ibm.ws.webservices.engine.SOAPPart.getString(SOAPPart.java:788)
        at com.ibm.ws.webservices.engine.SOAPPart.getAsString(SOAPPart.java:582)
        at 
com.ibm.ws.webservices.engine.SOAPPart.getSOAPEnvelope(SOAPPart.java:888)
        at com.ibm.ws.webservices.engine.SOAPPart.getFault(SOAPPart.java:1262)
        at com.ibm.ws.webservices.engine.Message.getFault(Message.java:757)
        at 
com.ibm.ws.webservices.engine.Message.ifFaultThrowSelf(Message.java:737)
        at 
com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:252)
        at 
com.ibm.ws.webservices.engine.WebServicesEngine.invoke(WebServicesEngine.java:255)
        at 
com.ibm.ws.webservices.engine.client.Connection.invokeEngine(Connection.java:688)
        at 
com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:614)
        at 
com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:444)
        at 
com.ibm.ws.webservices.engine.client.Stub$Invoke.invoke(Stub.java:662)
        at 
com.cml.hr.portal.eai.webservices.sap.MS_ALPHA_EJOB_PRJHTTP_SOAP_Binding_FindPositionsStub.EJobFindPositions(MS_ALPHA_EJOB_PRJHTTP_SOAP_Binding_FindPositionsStub.java:112)
        at 
com.cml.hr.portal.eai.webservices.sap.FindPositionsTestCase.testFindPositions(FindPositionsTestCase.java:115)
        at java.lang.reflect.Method.invoke(Native Method)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:329)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:218)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:151)
2005-12-28 10:30:59,907 ERROR 
com.cml.hr.portal.eai.webservices.sap.FindPositionsTestCase - 
testFindPositions() caught exception [WSWS3400I: Info: unexpected exception.; 
nested exception is:
        java.lang.NullPointerException] while accessing web service.
WebServicesFault
 faultCode: Server.generalException
 faultString: WSWS3400I: Info: unexpected exception.
 faultActor: null
 faultDetail:

WSWS3400I: Info: unexpected exception.
java.lang.NullPointerException
        at java.io.FilterInputStream.read(FilterInputStream.java:128)
        at com.ibm.ws.webservices.engine.SOAPPart.getBytes(SOAPPart.java:671)
        at com.ibm.ws.webservices.engine.SOAPPart.getString(SOAPPart.java:788)
        at com.ibm.ws.webservices.engine.SOAPPart.getAsString(SOAPPart.java:582)
        at 
com.ibm.ws.webservices.engine.SOAPPart.getSOAPEnvelope(SOAPPart.java:888)
        at com.ibm.ws.webservices.engine.SOAPPart.getFault(SOAPPart.java:1262)
        at com.ibm.ws.webservices.engine.Message.getFault(Message.java:757)
        at 
com.ibm.ws.webservices.engine.Message.ifFaultThrowSelf(Message.java:737)
        at 
com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:252)
        at 
com.ibm.ws.webservices.engine.WebServicesEngine.invoke(WebServicesEngine.java:255)
        at 
com.ibm.ws.webservices.engine.client.Connection.invokeEngine(Connection.java:688)
        at 
com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:614)
        at 
com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:444)
        at 
com.ibm.ws.webservices.engine.client.Stub$Invoke.invoke(Stub.java:662)
        at 
com.cml.hr.portal.eai.webservices.sap.MS_ALPHA_EJOB_PRJHTTP_SOAP_Binding_FindPositionsStub.EJobFindPositions(MS_ALPHA_EJOB_PRJHTTP_SOAP_Binding_FindPositionsStub.java:112)
        at 
com.cml.hr.portal.eai.webservices.sap.FindPositionsTestCase.testFindPositions(FindPositionsTestCase.java:115)
        at java.lang.reflect.Method.invoke(Native Method)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:329)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:218)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:151)

Thanks for any advice!

Kind regards,

Rob
:)

-------
Robert Mark Bram
Portal Analyst Programmer
eBusiness, Methodologies and Portals (eBM&P), Coles Myer Limited
[EMAIL PROTECTED]
+61 3 9635 1036


This email and any attachments may contain privileged and confidential 
information and are intended for the named addressee only. If you have received 
this e-mail in error, please notify the sender and delete this e-mail 
immediately. Any confidentiality, privilege or copyright is not waived or lost 
because this e-mail has been sent to you in error. It is your responsibility to 
check this e-mail and any attachments for viruses.  No warranty is made that 
this material is free from computer virus or any other defect or error.  Any 
loss/damage incurred by using this material is not the sender's responsibility. 
 The sender's entire liability will be limited to resupplying the material.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to