4 Replies Latest reply on Jan 28, 2011 3:51 AM by izgur

    can't call a .NET web service ? Cannot stringify null Node

    izgur

      Hey!

       

      I'm using Jboss5.1, ESB4.8 and Riftsaw2.1... and develop web services with BPEL.... using JBoss Web Services- native 3.2.1...

      They couldn't help me on theRiftsaw forum : http://community.jboss.org/thread/161703

      In this discussion i posted the wsdl I'm retrieving.

       

      PROBLEM:

      2011-01-27 09:36:20,503 ERROR [org.apache.ode.jacob.vpu.JacobVPU] (ODEServer-1) Method "onResponse" in class "org.apache.ode.bpel.runtime.INVOKE$2" threw an unexpected exception.

      java.lang.IllegalArgumentException: Cannot stringify null Node!

       

       

      I have already created TRACE logging for org.jboss.ws and org.jboss.wsf, but still I can't see what the problem could be. Everybody write that there must be a SoapAction not included error.... but I see that JBoss knows what the SoapAction is...

       

      LOG:

      2011-01-27 14:23:56,456 TRACE [org.jboss.ws.core.MessageTrace] (ODEServer-7) Outgoing Request Message

      <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>

      <env:Header/>

      <env:Body>

        <SayHello xmlns='http://tempuri.org/'>

         <p:name xmlns:p='http://tempuri.org/'>2</p:name>

        </SayHello>

      </env:Body>

      </env:Envelope>

      2011-01-27 14:23:56,517 TRACE [org.jboss.ws.core.CommonMessageContext] (ODEServer-7) get(org.jboss.ws.DOMContentCanonicalNormalization): null

      2011-01-27 14:23:56,518 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) getChildNodes

      2011-01-27 14:23:56,518 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) getChildNodes

      2011-01-27 14:23:56,916 TRACE [org.jboss.ws.core.soap.SOAPMessageUnMarshallerHTTP] (ODEServer-7) Read input stream with metadata={X-AspNet-Version=[2.0.50727], Date=[Thu, 27 Jan 2011 13:35:47 GMT], Content-Length=[698], MicrosoftOfficeWebServer=[5.0_Pub], ResponseCodeMessage=Internal Server Error, ResponseCode=500, Content-Type=[text/xml; charset=utf-8], Connection=[close], X-Powered-By=[ASP.NET], Server=[Microsoft-IIS/6.0], Protocol=HTTP/1.1, Cache-Control=[private]}

      2011-01-27 14:23:56,916 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) [X-AspNet-Version=2.0.50727]

      2011-01-27 14:23:56,916 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) [Date=Thu, 27 Jan 2011 13:35:47 GMT]

      2011-01-27 14:23:56,916 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) [Content-Length=698]

      2011-01-27 14:23:56,916 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) [MicrosoftOfficeWebServer=5.0_Pub]

      2011-01-27 14:23:56,916 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) [Content-Type=text/xml; charset=utf-8]

      2011-01-27 14:23:56,916 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) [Connection=close]

      2011-01-27 14:23:56,916 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) [X-Powered-By=ASP.NET]

      2011-01-27 14:23:56,916 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) [Server=Microsoft-IIS/6.0]

      2011-01-27 14:23:56,916 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) [Cache-Control=private]

      2011-01-27 14:23:56,916 DEBUG [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) createMessage: [contentType=text/xml; charset=utf-8]

      2011-01-27 14:23:56,917 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) createMessage

      <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</faultcode><faultstring xml:lang="sl-SI">The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring></s:Fault></s:Body></s:Envelope>

      2011-01-27 14:23:56,917 TRACE [org.jboss.ws.core.soap.MessageFactoryImpl] (ODEServer-7) Using style: document

      2011-01-27 14:23:56,917 TRACE [org.jboss.wsf.common.DOMUtils] (ODEServer-7) createElement {http://schemas.xmlsoap.org/soap/envelope/}s:Envelope

      2011-01-27 14:23:56,918 TRACE [org.jboss.wsf.common.DOMUtils] (ODEServer-7) createElement {http://schemas.xmlsoap.org/soap/envelope/}s:Body

      2011-01-27 14:23:56,918 TRACE [org.jboss.wsf.common.DOMUtils] (ODEServer-7) createElement {http://schemas.xmlsoap.org/soap/envelope/}s:Fault

      2011-01-27 14:23:56,919 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) getChildNodes

      2011-01-27 14:23:56,919 DEBUG [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) -----------------------------------

      2011-01-27 14:23:56,920 DEBUG [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) Transitioning from XML_VALID to DOM_VALID

      2011-01-27 14:23:56,920 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) removeContents

      2011-01-27 14:23:56,920 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) getChildElements

      2011-01-27 14:23:56,920 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) getChildNodes

      2011-01-27 14:23:56,920 TRACE [org.jboss.wsf.common.DOMUtils] (ODEServer-7) createElement {}faultcode

      2011-01-27 14:23:56,920 TRACE [org.jboss.ws.core.soap.SOAPFaultImpl] (ODEServer-7) convertToFaultElement : org.jboss.ws.core.soap.SOAPFaultElementImpl@1be361d[[faultcode: null]]

      2011-01-27 14:23:56,920 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) addChildElement: org.jboss.ws.core.soap.SOAPFaultElementImpl@1be361d[[faultcode: null]]

      2011-01-27 14:23:56,920 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) appendChild: org.jboss.ws.core.soap.SOAPFaultElementImpl@1be361d[[faultcode: null]]

      2011-01-27 14:23:56,920 TRACE [org.jboss.wsf.common.DOMUtils] (ODEServer-7) createElement {}faultstring

      2011-01-27 14:23:56,920 TRACE [org.jboss.ws.core.soap.SOAPFaultImpl] (ODEServer-7) convertToFaultElement : org.jboss.ws.core.soap.SOAPFaultElementImpl@d2c996[[faultstring: null]]

      2011-01-27 14:23:56,920 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) addChildElement: org.jboss.ws.core.soap.SOAPFaultElementImpl@d2c996[[faultstring: null]]

      2011-01-27 14:23:56,920 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) appendChild: org.jboss.ws.core.soap.SOAPFaultElementImpl@d2c996[[faultstring: null]]

      2011-01-27 14:23:56,921 DEBUG [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) -----------------------------------

      2011-01-27 14:23:56,921 TRACE [org.jboss.ws.core.soap.SOAPContentElement] (ODEServer-7) getChildNodes

      2011-01-27 14:23:56,921 TRACE [org.jboss.ws.core.MessageTrace] (ODEServer-7) Incoming Response Message

      <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>

      <s:Body>

        <s:Fault xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>

         <faultcode xmlns:a='http://schemas.microsoft.com/ws/2005/05/addressing/none'>a:ActionNotSupported</faultcode>

         <faultstring xml:lang='sl-SI'>The message with Action &apos;&apos; cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring>

        </s:Fault>

      </s:Body>

      </s:Envelope>

       

      Please help ...

      Any idea what could solve the problem?

       

      BR, Igor!

        • 1. can't call a .NET web service ? Cannot stringify null Node
          izgur

          got one more reply ... still not working ...

           

          It's very strange, ODE-260 was fixed a long time ago in version 1.2,and now I can see, that version 1.3.3 still contains this bug. I thinkmaintainer didn't apply all my patches, missed some fixes, so thisparticular case is still here. Well, in bug report [1] there is cleardescription when this bug appears, it appears when external servicereturns empty SOAP message without body and without header.

          <?xml version='1.0' encoding='utf-8'?>

          <soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

            <soapenv:Body />

          </soapenv:Envelope>

           

          You cannot work around this bug, you have to either return some dummydata or header from your external service, or apply patch [2] andrecompile ODE runtime. I'm going to reopen this bug report to notifydeveloper, that this bug still persist.

          Just one note, I work with JPA DAO, and as I see you work with JBoss,and so I think you work with Hibernate. If that so, you can try to workaround with just disabling debug logging for class " org.apache.ode.bpel.runtime.

          ScopeFrame",I don't know but it can help you.

          • 2. can't call a .NET web service ? Cannot stringify null Node
            izgur

            The trace log you uploaded shows that it is loading the soapAction as part of the external service's WSDL, prior to sending the request - but does not provide enough information as to whether it is actually sending the soapAction.

             

            How to turn on additional diagnostics ?

            • 3. can't call a .NET web service ? Cannot stringify null Node
              izgur

              The problem is definitely, that jboss doesn't insert the SOAPAction althought it loades it as part of the external service's WSDL !!??

               

              The SoapAction is not sending !!!

               

              In the HTTP post i see:

              Connection: keep-alive

              Content-Type: text/xml; charset=UTF-8

              Host: psplatform.dyndns.org

              SOAPAction: ""

              Transfer-Encoding: chunked

               

              Any idea why it's not included?  How cai i set the SOAPAction on JBoss / BPEL (JBossWS Native - 3.2.1 GA)?

              • 4. can't call a .NET web service ? Cannot stringify null Node
                izgur

                OK.

                Cannot stringify null Node happends (althought it should be already fixed) when you get an empty web service response ...

                Probably it turns on when u change log level ... because it wasn't there from the beginning...