2 Replies Latest reply on Apr 19, 2013 5:51 AM by mageshbk

    SOAP Binding doesn't seem to handle RPC-style web services correctly

    tadayosi

      Hello,

       

      This is a follow-up feedback from the previous discussion at https://community.jboss.org/thread/222932 . I'm exploring SOAPClient-equivalent capabilities in SwitchYard and now trying to invoke a RPC-style web service as a reference from a SCA component. The RPC-style web service I'm trying to invoke looks like this:

       

      @WebService(name = "HelloWorld", targetNamespace = "http://webservice_consumer1/helloworld")
      @SOAPBinding(style = SOAPBinding.Style.RPC)
      public class HelloWorldWS {
          ...
      

       

      However, the invocation fails with the following error in SY 0.8:

       

      23:17:58,289 ERROR [org.slf4j.Logger] Failed delivery for (MessageId: ID-reunion-44667-1365689873791-2-4 on ExchangeId: ID-reunion-44667-1365689873791-2-5). Exhausted after delivery attempt: 1 caught: org.switchyard.HandlerException: Unexpected exception handling SOAP Message
      org.switchyard.HandlerException: Unexpected exception handling SOAP Message
                at org.switchyard.component.soap.OutboundHandler.handleMessage(OutboundHandler.java:178)
                at org.switchyard.bus.camel.processors.ProviderProcessor.process(ProviderProcessor.java:36)
                at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
                (snip)
      Caused by: javax.xml.soap.SOAPException: Cannot process SOAP request
                at org.switchyard.component.soap.OutboundHandler.invokeService(OutboundHandler.java:205)
                at org.switchyard.component.soap.OutboundHandler.handleMessage(OutboundHandler.java:149)
                ... 188 more
      Caused by: java.lang.NullPointerException
                at org.switchyard.component.soap.util.WSDLUtil.getOperationByElement(WSDLUtil.java:290)
                at org.switchyard.component.soap.util.WSDLUtil.getBindingOperation(WSDLUtil.java:369)
                at org.switchyard.component.soap.util.WSDLUtil.getSoapAction(WSDLUtil.java:390)
                at org.switchyard.component.soap.OutboundHandler.invokeService(OutboundHandler.java:193)
                ... 189 more
      

       

      I believe SY aims to support RPC-style web services with SOAP binding ( https://issues.jboss.org/browse/SWITCHYARD-627 ), but apparently there is a bug in SOAP binding:

      https://issues.jboss.org/browse/SWITCHYARD-1348

      https://issues.jboss.org/browse/SWITCHYARD-1392

       

      I'm attaching my entire project. Please let me know what do you think. Any advices would be much appreciated.

       

      Best regards,

      Tadayoshi