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

                 Key: SMXCOMP-547
                 URL: https://issues.apache.org/activemq/browse/SMXCOMP-547
             Project: ServiceMix Components
          Issue Type: Bug
          Components: servicemix-cxf-bc
            Reporter: Ben Brown


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>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to