3 Replies Latest reply on Jun 1, 2009 11:37 AM by davestanley

    http-provider throws java.lang.IllegalStateException

    vvchoy

      Hi,

       

      I am new to FUSE-ESB and appreciate any help with regards to this issue. I have built a very simple SA with 2 SUs : one is the servicemix-http consumer and the other is the servicemix-http provider. Both will process soap messages. When I send in the soap message, the consumer receives it correctly, displays the message content and then forwards it to the provider. However, I got an exception at the provider (as attached)

       

      What does that java.lang.IllegalStateException mean when thrown within the JbiInWsdl1Interceptor$StaxJbiWrapper.getName() ?

       

      Thanks a lot

       

      Error message is :

       

      INFO - AbwsHttpConsumerMarshaler - Message-In ::

      INFO - AbwsHttpConsumerMarshaler - <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:jbi="http://

      java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://com/ventyx/soi/poc/abws" type="msg:FindWindows" nam

      e="FindWindows" version="1.0"><jbi:part><abws:FindWindowsElm xmlns:abws="http://com/ventyx/soi/poc/abws">

      <abws:request>

       

      <ReservationFindWindows>

      <BusinessUnit>BU00003</BusinessUnit>

      <SearchWindowStart>051320090800</SearchWindowStart>

      <SearchWindowEnd>051420091600</SearchWindowEnd>

      </ReservationFindWindows>

       

      </abws:request>

      </abws:FindWindowsElm></jbi:part></jbi:message>

      INFO - AbwsHttpConsumerMarshaler - <AbwsHttpConsumerMarshaler:createExchange>.... out ....

      INFO - AbwsHttpProviderMarshaler - <AbwsHttpProviderMarshaler:createRequest>....

      DEBUG - AbwsHttpProviderMarshaler - Using default request encoding in provider marshaller.

      INFO - PhaseInterceptorChain - Interceptor has thrown exception, unwinding now

      java.lang.IllegalStateException at org.apache.servicemix.soap.interceptors.jbi.JbiInWsdl1Interceptor$StaxJbiWrapper.getName(JbiInWsdl1 Interceptor.java:317) at org.apache.servicemix.soap.interceptors.jbi.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interce

      ptor.java:81)

      at org.apache.servicemix.soap.core.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:85)

      at org.apache.servicemix.http.endpoints.HttpSoapProviderMarshaler.createRequest(HttpSoapProviderMarsha

      ler.java:104)

      at com.ventyx.soi.poc.abws.AbwsHttpProviderMarshaler.createRequest(AbwsHttpProviderMarshaler.java:60)

      at org.apache.servicemix.http.endpoints.HttpProviderEndpoint.process(HttpProviderEndpoint.java:233)

      at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:621)

      at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:575)

      at org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:531)

      at org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)

      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623

      )

      at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)

      at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)

      at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)

      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

      at java.lang.Thread.run(Thread.java:619)

      ERROR - HttpComponent - Error processing exchange InOut[

      id: ID:10.100.50.156-1215b3fecd1-10:0

      status: Active

      role: provider

      service: AbwsHttpProviderSvc

      endpoint: AbwsHttpProviderSvcPort

      operation: FindWindows

      in: <?xml version="1.0" encoding="UTF-8"?>

      ]

      java.lang.IllegalStateException

      at org.apache.servicemix.soap.interceptors.jbi.JbiInWsdl1Interceptor$StaxJbiWrapper.getName(JbiInWsdl1

      Interceptor.java:317)

      at org.apache.servicemix.soap.interceptors.jbi.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interce

      ptor.java:81)

      at org.apache.servicemix.soap.core.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:85)

      at org.apache.servicemix.http.endpoints.HttpSoapProviderMarshaler.createRequest(HttpSoapProviderMarsha

      ler.java:104)

      at com.ventyx.soi.poc.abws.AbwsHttpProviderMarshaler.createRequest(AbwsHttpProviderMarshaler.java:60)

      at org.apache.servicemix.http.endpoints.HttpProviderEndpoint.process(HttpProviderEndpoint.java:233)

      at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:621)

      at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:575)

      at org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:531)

      at org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)

      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623

      )

      at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)

      at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)

      at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)

      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

      at java.lang.Thread.run(Thread.java:619)

      INFO - AbwsHttpConsumerMarshaler - <AbwsHttpConsumerMarshaler:sendError>....

      DEBUG - AbwsHttpConsumerMarshaler - Using default response content encoding.

        • 1. Re: http-provider throws java.lang.IllegalStateException
          ubhole

          If you are having a usecase where you are using soap messages then CXF BC/SE is better fit than servicemix-http. Can you try using CXF BC/SE and if you have any problems with it let us know and attach your testcase with the forum message for helping you to resolve any issues.

           

          Ulhas

          • 2. Re: http-provider throws java.lang.IllegalStateException
            vvchoy

            Hi there,

             

            First of all thanks for taking the time to reply.

             

            Actually, I stuck a protocol analyzer in between my http-provider and my back-end server and found out that the soap message sent by the provider to the server is actually broken into 2 packets:

            1) the first packet has the HTTP header:

             

            POST /AbwsWs/Abws HTTP/1.1..

            CONTENT_TYPE: text/xml;charset=UTF-8..

            Content-Length: 664..

            SOAPAction: ""..

            User-Agent: Jakarta Commons-HttpClient/3.0.1..

            REQUEST_METHOD: POST..

            REQUEST_URI: http://localhost:8192/Service/..

            .......

             

            2) the second packet has the actual soap envelope.

             

            The backend server expects the message to come in as one single complete packet and therefore sent back an error response.

             

            My question is whether there is any way to configure the servicemix-http-provider to send the whole message in one single packet.

             

            Thanks a lot

            Valerie

            • 3. Re: http-provider throws java.lang.IllegalStateException
              davestanley

              Looks like this thread has been answered by tmielke @:

               

              threadId=905

               

              Edited by: dstanley on Jun 1, 2009 3:36 PM