Uploaded image for project: 'ServiceMix Components'
  1. ServiceMix Components
  2. SMXCOMP-547

CXF-BC Component unable to use web services with parameter named "Body" when useJBIWrapper=false

    XMLWordPrintableJSON

Details

    • Patch Available

    Description

      The CXF-BC component cannot call a web service with a parameter named "Body" when the useJBIWrapper flag is set to false. When useJBIWrapper is false the code attempts to look for the node in the XML that is the SOAP Body and find the parameter of the method rather than an actual SOAP Body node.

      A patch for the fix is attached which I believe will work. This assumes that if useJBIWrapper is false then the root node of the XML Body is the Body node for the Web Service call. This seems a fair assumption to me, however I am unable to get the code running correctly in Eclipse and cannot run the tests so I am unable to test this fully. Please contact me for more information.

      Example of web service call that will fail: (WSDL located at https://ws.textanywhere.net/TA_SMS.asmx?wsdl)

      <ta:SendSMSEx xmlns:ta="http://ws.textanywhere.net/TA_WS">
      <ta:Client_ID>xxxxx</ta:Client_ID>
      <ta:Client_Pass>xxxxx</ta:Client_Pass>
      <ta:Client_Ref>113077</ta:Client_Ref>
      <ta:Billing_Ref>USER_MESSAGE_113077</ta:Billing_Ref>
      <ta:Connection>1</ta:Connection>
      <ta:Originator>xxxxx</ta:Originator>
      <ta:OType>1</ta:OType>
      <ta:DestinationEx>+44673458978977</ta:DestinationEx>
      <ta:Body>Test Data</ta:Body>
      <ta:SMS_Type>0</ta:SMS_Type>
      <ta:Reply_Type>0</ta:Reply_Type>
      <ta:Reply_Data/>
      </ta:SendSMSEx>

      Xbean.xml is as follows:

      <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
      xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://servicemix.apache.org/http/1.0 http://servicemix.apache.org/schema/servicemix-http-3.2.2.xsd
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
      xmlns:text="http://ws.textanywhere.net/TA_WS">

      <cxfbc:provider
      wsdl="${sms.provider.url}"
      service="text:TextAnywhere_SMS"
      endpoint="TextAnywhere_SMSSoap"
      useSOAPEnvelope="false"/>

      <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="locations">
      <list>
      <value>classpath:/oms.properties</value>
      </list>
      </property>
      </bean>
      </beans>

      Attachments

        1. SMXCOMP-547.txt
          3 kB
          Ben Brown

        Activity

          People

            ffang Freeman Yue Fang
            ben_brown30 Ben Brown
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: