You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by "Brown, Ben" <be...@bluefingroup.co.uk> on 2009/05/11 15:12:28 UTC

Problem with CXF-BC Web Service and node called "Body"

I am using the CXF-BC component in Servicemix 3.3 to connect to an
external web service for sending SMS messages.  The configuration of my
xbean.xml is shown below:

<cxfbc:provider
    	wsdl="http://ws.textanywhere.net/TA_SMS.asmx?wsdl" 
      service="text:TextAnywhere_SMS"
      endpoint="TextAnywhere_SMSSoap"
      useJBIWrapper="false"
      useSOAPEnvelope="false"/> 

I am using SoapUI to generate a sample request message for testing.
This sample request is placed onto a JMS queue in JConsole with a Camel
route using the JBI component sending the message to the CXF endpoint
above.  Route shown below:

from("activemq:queue.sms.request")
   		// Send to TextAnywhere Web Service
 
.to("jbi:service:http://ws.textanywhere.net/TA_WS/TextAnywhere_SMS?opera
tion={http://ws.textanywhere.net/TA_WS}SendSMSEx&mep=in-out").convertBod
yTo(String.class)

The sample request (shown below) contains a parameter called "Body",
however this seems to break the parser and prevents the webservice from
being called with the following error: fault: <?xml version="1.0"
encoding="UTF-8"?><JBIFault
xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
org.w3c.dom.Element</detail></JBIFault>

Sample Message (client_id and client_pass values removed):

<ta:SendSMSEx xmlns:ta="http://ws.textanywhere.net/TA_WS">
         <!--Optional:-->
         <ta:Client_ID>xxxxxx</ta:Client_ID>
         <!--Optional:-->
         <ta:Client_Pass>xxxxxx</ta:Client_Pass>
         <!--Optional:-->
         <ta:Client_Ref>TEST</ta:Client_Ref>
         <!--Optional:-->
         <ta:Billing_Ref>TEST</ta:Billing_Ref>
         <ta:Connection>1</ta:Connection>
         <!--Optional:-->
         <ta:Originator>Bluefin</ta:Originator>
         <ta:OType>1</ta:OType>
         <!--Optional:-->
         <ta:DestinationEx>+4470000000</ta:DestinationEx>
         <!--Optional:-->
	<ta:Body>Test</ta:Body>
         <ta:SMS_Type>0</ta:SMS_Type>
         <ta:Reply_Type>0</ta:Reply_Type>
         <!--Optional:-->
         <ta:Reply_Data></ta:Reply_Data>
      </ta:SendSMSEx>


This error only occurs when the Body element is present in the message.
If I remove this then I get the error "Server was unable to process
request. --&gt; Object reference not set to an instance of an object" in
the fault response message - which is normally seen when the message is
malformed (as it's missing the body element).

I'm not sure which classes are actually throwing this JBI error above
and so I am unable to provide further debugging information, however I
am certain that no message is sent to the web service (none appears in
Wireshark).

Thanks in advance for your time and help.

Ben Brown

This email and any files or information it contains are confidential and may be privileged.  It is for the intended addressee(s) only.  The unauthorised use, disclosure or copying of this email or any information it contains, is prohibited and could, in certain circumstances be a criminal offence. If you are not the intended recipient you should not disseminate or copy this email.  Please notify the sender immediately and delete this message from your system. 

Please note that any opinions presented in this email are solely those of the author (or those of a third party whose statement is forwarded) and do not necessarily represent those of any company within the Bluefin Group Limited group of companies.

Email transmission cannot be guaranteed to be secure or error free as information could be intercepted, corrupted, lost, destroyed, late in arriving or incomplete as a result of the transmission process.  The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of email transmission.

WARNING: Computer viruses can be transmitted by email. The recipient should check this email and any attachments for the presence of viruses.  The Bluefin Group Limited group of companies accepts no liability for any damage caused by any virus transmitted by this email.

Re: Issues Building Servicemix 3.3 Core and Components Source in Eclipse

Posted by Freeman Fang <fr...@gmail.com>.
Brown, Ben wrote:
> Hi All
>
> I've managed to get the servicemix core codebase and the servicemix
> components codebase into Eclipse.  After building all the projects using
> Maven I still get a couple of projects that don't build (probably for
> Newbie reasons ;-) ).
>
> Servicemix-cxf-bc:  This project does not build as
> org.apache.cxf.binding.AbstractBindingFactory.DATABINDING_DISABLED is
> supposed to not exist - however if I look at my source it appears to be
> there.  I appear to have Maven dependency of
> cxf-rt-core-2.2.2-SNAPSHOT.jar and this appears to have the class with
> the field inside.  Has anyone seen this issue before?
>   
The DATABINDING_DISABLED property just get removed from cxf codebase 
yesterday, I already sent mail to cxf dev list to see how we can sort it 
out asap...
> Servicemix-wsn2005: There are a number of org.oasis_open classes that
> cannot be resolved.  Does anyone know why this dependency is missing or
> from where the jar can be found?
>
> Thanks in advance.
>
> Ben Brown
> This email and any files or information it contains are confidential and may be privileged.  It is for the intended addressee(s) only.  The unauthorised use, disclosure or copying of this email or any information it contains, is prohibited and could, in certain circumstances be a criminal offence. If you are not the intended recipient you should not disseminate or copy this email.  Please notify the sender immediately and delete this message from your system. 
>
> Please note that any opinions presented in this email are solely those of the author (or those of a third party whose statement is forwarded) and do not necessarily represent those of any company within the Bluefin Group Limited group of companies.
>
> Email transmission cannot be guaranteed to be secure or error free as information could be intercepted, corrupted, lost, destroyed, late in arriving or incomplete as a result of the transmission process.  The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of email transmission.
>
> WARNING: Computer viruses can be transmitted by email. The recipient should check this email and any attachments for the presence of viruses.  The Bluefin Group Limited group of companies accepts no liability for any damage caused by any virus transmitted by this email.
>
>   


-- 
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com


Issues Building Servicemix 3.3 Core and Components Source in Eclipse

Posted by "Brown, Ben" <be...@bluefingroup.co.uk>.
Hi All

I've managed to get the servicemix core codebase and the servicemix
components codebase into Eclipse.  After building all the projects using
Maven I still get a couple of projects that don't build (probably for
Newbie reasons ;-) ).

Servicemix-cxf-bc:  This project does not build as
org.apache.cxf.binding.AbstractBindingFactory.DATABINDING_DISABLED is
supposed to not exist - however if I look at my source it appears to be
there.  I appear to have Maven dependency of
cxf-rt-core-2.2.2-SNAPSHOT.jar and this appears to have the class with
the field inside.  Has anyone seen this issue before?

Servicemix-wsn2005: There are a number of org.oasis_open classes that
cannot be resolved.  Does anyone know why this dependency is missing or
from where the jar can be found?

Thanks in advance.

Ben Brown
This email and any files or information it contains are confidential and may be privileged.  It is for the intended addressee(s) only.  The unauthorised use, disclosure or copying of this email or any information it contains, is prohibited and could, in certain circumstances be a criminal offence. If you are not the intended recipient you should not disseminate or copy this email.  Please notify the sender immediately and delete this message from your system. 

Please note that any opinions presented in this email are solely those of the author (or those of a third party whose statement is forwarded) and do not necessarily represent those of any company within the Bluefin Group Limited group of companies.

Email transmission cannot be guaranteed to be secure or error free as information could be intercepted, corrupted, lost, destroyed, late in arriving or incomplete as a result of the transmission process.  The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of email transmission.

WARNING: Computer viruses can be transmitted by email. The recipient should check this email and any attachments for the presence of viruses.  The Bluefin Group Limited group of companies accepts no liability for any damage caused by any virus transmitted by this email.

Re: Problem with CXF-BC Web Service and node called "Body"

Posted by Gert Vanthienen <ge...@gmail.com>.
Ben,

I'm not that familiar with the CXF BC codebase myself, but from
looking at the code that just might be it.  Definitely feel free to
provide a patch for solving the issue.  You can take a look at the
other unit tests in there to add a test as well, that way you should
be able to make the change without breaking the other code (and we can
make changes afterwards without breaking your fix ;).  Thanks for
volunteering to take a stab at this...

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/5/11 Brown, Ben <be...@bluefingroup.co.uk>:
> Thanks Gert
>
> I've taken a look at the following class:
>
> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor
>
> in the handleMessage method there is the following code at line 80.
>
> Element bodyElement = (Element) element.getElementsByTagNameNS(
>                            element.getNamespaceURI(),
>                            soapVersion.getBody().getLocalPart()).item(0);
>
> Correct me if I'm wrong - but this appears to look for an element named "Body" in the namespace of the root node of the message - and it assumes that this element is the body.  Looking at the comments in the code, this is expected to pick up CXF-BC Consumer elements NOT provider elements that I am using.
>
> If this is indeed what the code is doing then this would appear to be a bug as a provider with a node named Body in the message will match this element.  Is it possible to use the "useSOAPEnvelope" parameter to determine if we should look for this bodyElement or not?  As it would seem that a provider that has useSOAPEnvelope="false" will not need to look for the root element, as it will be element passed into this method.  This also appears to only be an issue when the useJBIWrapper is set to false.  I will (as a short-term workaround), try putting a JBI Wrapper around the message and unsetting that property.
>
> Hope that makes some sense - I am happy to help work on a patch if necessary, although I don't really understand the full implications on any change such as this.
>
> Thanks in advance
>
> Ben
>
>
> -----Original Message-----
> From: Gert Vanthienen [mailto:gert.vanthienen@gmail.com]
> Sent: 11 May 2009 15:51
> To: users@servicemix.apache.org
> Subject: Re: Problem with CXF-BC Web Service and node called "Body"
>
> Ben,
>
> That class is part of the CXF-BC component and can be found in the
> https://svn.apache.org/repos/asf/servicemix/components/bindings/servicemix-cxf-bc/trunk
> project.
> You can view it as
> http://svn.eu.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutWsdl1Interceptor.java?view=log
>
> Regards,
>
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
>
>
>
> 2009/5/11  <be...@ben-brown.co.uk>:
>> Hi Gert
>>
>> Unfortunately that is the only error message / stack trace visible - this
>> is partly why I'm so stuck as I'm not sure on where the error is coming
>> from.
>>
>> I have just managed to turn on extra logging for CXF which gives me the
>> following in my log4j file.  This seems to suggest the error is thrown from
>> the following class:
>> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.  I'm
>> currently trying to find this in SVN, but haven't managed to find it with
>> the intention of setting up remote debugging in Eclipse to see if I can
>> track down some more information.
>>
>> Thanks
>>
>> Ben Brown
>>
>> --------------------------------------
>>
>>
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
>> interceptor
>> org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor@643b04
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
>> interceptor
>> org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor@b3bb6b
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
>> interceptor
>> org.apache.servicemix.cxfbc.interceptors.JbiOutInterceptor@165f6e3
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@1d5aaaf
>> DEBUG - cxf.phase.PhaseInterceptorChain - Adding interceptor
>> org.apache.cxf.interceptor.StaxOutInterceptor$StaxOutEndingInterceptor@152ee1e
>> to phase pre-stream-ending
>> DEBUG - cxf.phase.PhaseInterceptorChain - Chain
>> org.apache.cxf.phase.PhaseInterceptorChain@d96a88 was modified. Current
>> flow:
>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>  write [SoapOutInterceptor]
>>  marshal [JbiOutWsdl1Interceptor]
>>  pre-stream-ending [StaxOutEndingInterceptor]
>>
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
>> interceptor
>> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@5e89f7
>> DEBUG - cxf.phase.PhaseInterceptorChain - Adding interceptor
>> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@1c30e39
>> to phase write-ending
>> DEBUG - cxf.phase.PhaseInterceptorChain - Chain
>> org.apache.cxf.phase.PhaseInterceptorChain@d96a88 was modified. Current
>> flow:
>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>  write [SoapOutInterceptor]
>>  marshal [JbiOutWsdl1Interceptor]
>>  write-ending [SoapOutEndingInterceptor]
>>  pre-stream-ending [StaxOutEndingInterceptor]
>>
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
>> interceptor
>> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor@133c757
>> INFO  - cxf.phase.PhaseInterceptorChain - Interceptor has thrown exception,
>> unwinding now org.apache.xerces.dom.DeferredTextImpl cannot be cast to
>> org.w3c.dom.Element
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
>> interceptor
>> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor@133c757
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
>> interceptor
>> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@5e89f7
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@1d5aaaf
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
>> interceptor
>> org.apache.servicemix.cxfbc.interceptors.JbiOutInterceptor@165f6e3
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
>> interceptor
>> org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor@b3bb6b
>> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
>> interceptor
>> org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor@643b04
>> DEBUG - jbi.messaging.DeliveryChannelImpl - Send
>> ID:140.140.144.118-1212ffce63b-10:0 in DeliveryChannel{servicemix-cxf-bc}
>> DEBUG - jbi.security.SecuredBroker     - send exchange with secure broker
>> DEBUG - flow.seda.SedaFlow             - Called Flow send
>> DEBUG - flow.seda.SedaQueue            -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@85e7b4 dequeued
>> exchange: InOut[
>>  id: ID:140.140.144.118-1212ffce63b-10:0
>>  status: Active
>>  role: consumer
>>  service: {http://ws.textanywhere.net/TA_WS}TextAnywhere_SMS
>>  endpoint: TextAnywhere_SMSSoap
>>  operation: {http://ws.textanywhere.net/TA_WS}SendSMSEx
>>  in: <?xml version="1.0" encoding="UTF-8"?><ta:SendSMSEx
>> xmlns:ta="http://ws.textanywhere.net/TA_WS">
>> <ta:Client_ID>xxxxxx</ta:Client_ID>
>> <ta:Client_Pass>xxxxxx</ta:Client_Pass>
>> <ta:Client_Ref>1</ta:Client_Ref>
>> <ta:Billing_Ref>ACTIVATION</ta:Billing_Ref>
>> <ta:Connection>1</ta:Connection>
>> <ta:Originator>Bluefin</ta:Originator>
>> <ta:OType>1</ta:OType>
>> <ta:DestinationEx>+4470000000</ta:DestinationEx>
>> <ta:Body>test</ta:Body>
>> <ta:SMS_Type>0</ta:SMS_Type>
>> <ta:Reply_Type>0</ta:Reply_Type>
>> <ta:Reply_Data/>
>> </ta:SendSMSEx>
>>  fault: <?xml version="1.0" encoding="UTF-8"?><JBIFault
>> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
>> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
>> org.w3c.dom.Element</detail></JBIFault>
>> ]
>> DEBUG - jbi.messaging.DeliveryChannelImpl - Send
>> ID:140.140.144.118-1212ffce63b-10:0 in DeliveryChannel{servicemix-camel}
>> DEBUG - jbi.security.SecuredBroker     - send exchange with secure broker
>> DEBUG - flow.seda.SedaFlow             - Called Flow send
>> DEBUG - flow.seda.SedaQueue            -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e2ac3b dequeued
>> exchange: InOut[
>>  id: ID:140.140.144.118-1212ffce63b-10:0
>>  status: Done
>>  role: provider
>>  service: {http://ws.textanywhere.net/TA_WS}TextAnywhere_SMS
>>  endpoint: TextAnywhere_SMSSoap
>>  operation: {http://ws.textanywhere.net/TA_WS}SendSMSEx
>>  in: <?xml version="1.0" encoding="UTF-8"?><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>1</ta:Client_Ref>
>> <ta:Billing_Ref>ACTIVATION</ta:Billing_Ref>
>> <ta:Connection>1</ta:Connection>
>> <ta:Originator>Bluefin</ta:Originator>
>> <ta:OType>1</ta:OType>
>> <ta:DestinationEx>+440000000</ta:DestinationEx>
>> <ta:Body>test</ta:Body>
>> <ta:SMS_Type>0</ta:SMS_Type>
>> <ta:Reply_Type>0</ta:Reply_Type>
>> <ta:Reply_Data/>
>> </ta:SendSMSEx>
>>  fault: <?xml version="1.0" encoding="UTF-8"?><JBIFault
>> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
>> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
>> org.w3c.dom.Element</detail></JBIFault>
>> ]
>> DEBUG - servicemix.cxfbc.CxfBcComponent - Received exchange: status: Done,
>> role: provider
>> DEBUG - servicemix.cxfbc.CxfBcComponent - Retrieved correlation id:
>> ID:140.140.144.118-1212ffce63b-10:0
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Mon, 11 May 2009 16:18:49 +0200, Gert Vanthienen
>> <ge...@gmail.com> wrote:
>>> Ben,
>>>
>>> Do you have a more complete stacktrace for this exception?  That might
>>> help us find out what the root cause of the problem is.
>>>
>>> Regards,
>>>
>>> Gert Vanthienen
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>> Blog: http://gertvanthienen.blogspot.com/
>>>
>>>
>>>
>>> 2009/5/11 Brown, Ben <be...@bluefingroup.co.uk>:
>>>> I am using the CXF-BC component in Servicemix 3.3 to connect to an
>>>> external web service for sending SMS messages.  The configuration of my
>>>> xbean.xml is shown below:
>>>>
>>>> <cxfbc:provider
>>>>        wsdl="http://ws.textanywhere.net/TA_SMS.asmx?wsdl"
>>>>      service="text:TextAnywhere_SMS"
>>>>      endpoint="TextAnywhere_SMSSoap"
>>>>      useJBIWrapper="false"
>>>>      useSOAPEnvelope="false"/>
>>>>
>>>> I am using SoapUI to generate a sample request message for testing.
>>>> This sample request is placed onto a JMS queue in JConsole with a Camel
>>>> route using the JBI component sending the message to the CXF endpoint
>>>> above.  Route shown below:
>>>>
>>>> from("activemq:queue.sms.request")
>>>>                // Send to TextAnywhere Web Service
>>>>
>>>> .to("jbi:service:http://ws.textanywhere.net/TA_WS/TextAnywhere_SMS?opera
>>>> tion={http://ws.textanywhere.net/TA_WS}SendSMSEx&mep=in-out").convertBod
>>>> yTo(String.class)
>>>>
>>>> The sample request (shown below) contains a parameter called "Body",
>>>> however this seems to break the parser and prevents the webservice from
>>>> being called with the following error: fault: <?xml version="1.0"
>>>> encoding="UTF-8"?><JBIFault
>>>> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
>>>> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
>>>> org.w3c.dom.Element</detail></JBIFault>
>>>>
>>>> Sample Message (client_id and client_pass values removed):
>>>>
>>>> <ta:SendSMSEx xmlns:ta="http://ws.textanywhere.net/TA_WS">
>>>>         <!--Optional:-->
>>>>         <ta:Client_ID>xxxxxx</ta:Client_ID>
>>>>         <!--Optional:-->
>>>>         <ta:Client_Pass>xxxxxx</ta:Client_Pass>
>>>>         <!--Optional:-->
>>>>         <ta:Client_Ref>TEST</ta:Client_Ref>
>>>>         <!--Optional:-->
>>>>         <ta:Billing_Ref>TEST</ta:Billing_Ref>
>>>>         <ta:Connection>1</ta:Connection>
>>>>         <!--Optional:-->
>>>>         <ta:Originator>Bluefin</ta:Originator>
>>>>         <ta:OType>1</ta:OType>
>>>>         <!--Optional:-->
>>>>         <ta:DestinationEx>+4470000000</ta:DestinationEx>
>>>>         <!--Optional:-->
>>>>        <ta:Body>Test</ta:Body>
>>>>         <ta:SMS_Type>0</ta:SMS_Type>
>>>>         <ta:Reply_Type>0</ta:Reply_Type>
>>>>         <!--Optional:-->
>>>>         <ta:Reply_Data></ta:Reply_Data>
>>>>      </ta:SendSMSEx>
>>>>
>>>>
>>>> This error only occurs when the Body element is present in the message.
>>>> If I remove this then I get the error "Server was unable to process
>>>> request. --> Object reference not set to an instance of an object" in
>>>> the fault response message - which is normally seen when the message is
>>>> malformed (as it's missing the body element).
>>>>
>>>> I'm not sure which classes are actually throwing this JBI error above
>>>> and so I am unable to provide further debugging information, however I
>>>> am certain that no message is sent to the web service (none appears in
>>>> Wireshark).
>>>>
>>>> Thanks in advance for your time and help.
>>>>
>>>> Ben Brown
>>>>
>>>> This email and any files or information it contains are confidential and
>>>> may be privileged.  It is for the intended addressee(s) only.  The
>>>> unauthorised use, disclosure or copying of this email or any information
>>>> it contains, is prohibited and could, in certain circumstances be a
>>>> criminal offence. If you are not the intended recipient you should not
>>>> disseminate or copy this email.  Please notify the sender immediately
>>>> and delete this message from your system.
>>>>
>>>> Please note that any opinions presented in this email are solely those
>> of
>>>> the author (or those of a third party whose statement is forwarded) and
>>>> do not necessarily represent those of any company within the Bluefin
>>>> Group Limited group of companies.
>>>>
>>>> Email transmission cannot be guaranteed to be secure or error free as
>>>> information could be intercepted, corrupted, lost, destroyed, late in
>>>> arriving or incomplete as a result of the transmission process.  The
>>>> sender therefore does not accept liability for any errors or omissions
>> in
>>>> the contents of this message which arise as a result of email
>>>> transmission.
>>>>
>>>> WARNING: Computer viruses can be transmitted by email. The recipient
>>>> should check this email and any attachments for the presence of viruses.
>>>>  The Bluefin Group Limited group of companies accepts no liability for
>>>> any damage caused by any virus transmitted by this email.
>>>>
>>
> --------------------------------------------------------------
> Protection | Management | Compliance - scanned for viruses and unwanted content by emailsystems
>
> Why use a managed email service? Click here to find out
> This email and any files or information it contains are confidential and may be privileged.  It is for the intended addressee(s) only.  The unauthorised use, disclosure or copying of this email or any information it contains, is prohibited and could, in certain circumstances be a criminal offence. If you are not the intended recipient you should not disseminate or copy this email.  Please notify the sender immediately and delete this message from your system.
>
> Please note that any opinions presented in this email are solely those of the author (or those of a third party whose statement is forwarded) and do not necessarily represent those of any company within the Bluefin Group Limited group of companies.
>
> Email transmission cannot be guaranteed to be secure or error free as information could be intercepted, corrupted, lost, destroyed, late in arriving or incomplete as a result of the transmission process.  The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of email transmission.
>
> WARNING: Computer viruses can be transmitted by email. The recipient should check this email and any attachments for the presence of viruses.  The Bluefin Group Limited group of companies accepts no liability for any damage caused by any virus transmitted by this email.
>

RE: Problem with CXF-BC Web Service and node called "Body"

Posted by "Brown, Ben" <be...@bluefingroup.co.uk>.
Thanks Gert

I've taken a look at the following class:

org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor

in the handleMessage method there is the following code at line 80.

Element bodyElement = (Element) element.getElementsByTagNameNS(
                            element.getNamespaceURI(),
                            soapVersion.getBody().getLocalPart()).item(0);

Correct me if I'm wrong - but this appears to look for an element named "Body" in the namespace of the root node of the message - and it assumes that this element is the body.  Looking at the comments in the code, this is expected to pick up CXF-BC Consumer elements NOT provider elements that I am using.  

If this is indeed what the code is doing then this would appear to be a bug as a provider with a node named Body in the message will match this element.  Is it possible to use the "useSOAPEnvelope" parameter to determine if we should look for this bodyElement or not?  As it would seem that a provider that has useSOAPEnvelope="false" will not need to look for the root element, as it will be element passed into this method.  This also appears to only be an issue when the useJBIWrapper is set to false.  I will (as a short-term workaround), try putting a JBI Wrapper around the message and unsetting that property.

Hope that makes some sense - I am happy to help work on a patch if necessary, although I don't really understand the full implications on any change such as this.

Thanks in advance

Ben


-----Original Message-----
From: Gert Vanthienen [mailto:gert.vanthienen@gmail.com] 
Sent: 11 May 2009 15:51
To: users@servicemix.apache.org
Subject: Re: Problem with CXF-BC Web Service and node called "Body"

Ben,

That class is part of the CXF-BC component and can be found in the
https://svn.apache.org/repos/asf/servicemix/components/bindings/servicemix-cxf-bc/trunk
project.
You can view it as
http://svn.eu.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutWsdl1Interceptor.java?view=log

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/5/11  <be...@ben-brown.co.uk>:
> Hi Gert
>
> Unfortunately that is the only error message / stack trace visible - this
> is partly why I'm so stuck as I'm not sure on where the error is coming
> from.
>
> I have just managed to turn on extra logging for CXF which gives me the
> following in my log4j file.  This seems to suggest the error is thrown from
> the following class:
> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.  I'm
> currently trying to find this in SVN, but haven't managed to find it with
> the intention of setting up remote debugging in Eclipse to see if I can
> track down some more information.
>
> Thanks
>
> Ben Brown
>
> --------------------------------------
>
>
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor@643b04
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor@b3bb6b
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor
> org.apache.servicemix.cxfbc.interceptors.JbiOutInterceptor@165f6e3
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@1d5aaaf
> DEBUG - cxf.phase.PhaseInterceptorChain - Adding interceptor
> org.apache.cxf.interceptor.StaxOutInterceptor$StaxOutEndingInterceptor@152ee1e
> to phase pre-stream-ending
> DEBUG - cxf.phase.PhaseInterceptorChain - Chain
> org.apache.cxf.phase.PhaseInterceptorChain@d96a88 was modified. Current
> flow:
>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>  write [SoapOutInterceptor]
>  marshal [JbiOutWsdl1Interceptor]
>  pre-stream-ending [StaxOutEndingInterceptor]
>
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@5e89f7
> DEBUG - cxf.phase.PhaseInterceptorChain - Adding interceptor
> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@1c30e39
> to phase write-ending
> DEBUG - cxf.phase.PhaseInterceptorChain - Chain
> org.apache.cxf.phase.PhaseInterceptorChain@d96a88 was modified. Current
> flow:
>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>  write [SoapOutInterceptor]
>  marshal [JbiOutWsdl1Interceptor]
>  write-ending [SoapOutEndingInterceptor]
>  pre-stream-ending [StaxOutEndingInterceptor]
>
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor
> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor@133c757
> INFO  - cxf.phase.PhaseInterceptorChain - Interceptor has thrown exception,
> unwinding now org.apache.xerces.dom.DeferredTextImpl cannot be cast to
> org.w3c.dom.Element
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor
> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor@133c757
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@5e89f7
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@1d5aaaf
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor
> org.apache.servicemix.cxfbc.interceptors.JbiOutInterceptor@165f6e3
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor@b3bb6b
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor@643b04
> DEBUG - jbi.messaging.DeliveryChannelImpl - Send
> ID:140.140.144.118-1212ffce63b-10:0 in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - jbi.security.SecuredBroker     - send exchange with secure broker
> DEBUG - flow.seda.SedaFlow             - Called Flow send
> DEBUG - flow.seda.SedaQueue            -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@85e7b4 dequeued
> exchange: InOut[
>  id: ID:140.140.144.118-1212ffce63b-10:0
>  status: Active
>  role: consumer
>  service: {http://ws.textanywhere.net/TA_WS}TextAnywhere_SMS
>  endpoint: TextAnywhere_SMSSoap
>  operation: {http://ws.textanywhere.net/TA_WS}SendSMSEx
>  in: <?xml version="1.0" encoding="UTF-8"?><ta:SendSMSEx
> xmlns:ta="http://ws.textanywhere.net/TA_WS">
> <ta:Client_ID>xxxxxx</ta:Client_ID>
> <ta:Client_Pass>xxxxxx</ta:Client_Pass>
> <ta:Client_Ref>1</ta:Client_Ref>
> <ta:Billing_Ref>ACTIVATION</ta:Billing_Ref>
> <ta:Connection>1</ta:Connection>
> <ta:Originator>Bluefin</ta:Originator>
> <ta:OType>1</ta:OType>
> <ta:DestinationEx>+4470000000</ta:DestinationEx>
> <ta:Body>test</ta:Body>
> <ta:SMS_Type>0</ta:SMS_Type>
> <ta:Reply_Type>0</ta:Reply_Type>
> <ta:Reply_Data/>
> </ta:SendSMSEx>
>  fault: <?xml version="1.0" encoding="UTF-8"?><JBIFault
> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
> org.w3c.dom.Element</detail></JBIFault>
> ]
> DEBUG - jbi.messaging.DeliveryChannelImpl - Send
> ID:140.140.144.118-1212ffce63b-10:0 in DeliveryChannel{servicemix-camel}
> DEBUG - jbi.security.SecuredBroker     - send exchange with secure broker
> DEBUG - flow.seda.SedaFlow             - Called Flow send
> DEBUG - flow.seda.SedaQueue            -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e2ac3b dequeued
> exchange: InOut[
>  id: ID:140.140.144.118-1212ffce63b-10:0
>  status: Done
>  role: provider
>  service: {http://ws.textanywhere.net/TA_WS}TextAnywhere_SMS
>  endpoint: TextAnywhere_SMSSoap
>  operation: {http://ws.textanywhere.net/TA_WS}SendSMSEx
>  in: <?xml version="1.0" encoding="UTF-8"?><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>1</ta:Client_Ref>
> <ta:Billing_Ref>ACTIVATION</ta:Billing_Ref>
> <ta:Connection>1</ta:Connection>
> <ta:Originator>Bluefin</ta:Originator>
> <ta:OType>1</ta:OType>
> <ta:DestinationEx>+440000000</ta:DestinationEx>
> <ta:Body>test</ta:Body>
> <ta:SMS_Type>0</ta:SMS_Type>
> <ta:Reply_Type>0</ta:Reply_Type>
> <ta:Reply_Data/>
> </ta:SendSMSEx>
>  fault: <?xml version="1.0" encoding="UTF-8"?><JBIFault
> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
> org.w3c.dom.Element</detail></JBIFault>
> ]
> DEBUG - servicemix.cxfbc.CxfBcComponent - Received exchange: status: Done,
> role: provider
> DEBUG - servicemix.cxfbc.CxfBcComponent - Retrieved correlation id:
> ID:140.140.144.118-1212ffce63b-10:0
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Mon, 11 May 2009 16:18:49 +0200, Gert Vanthienen
> <ge...@gmail.com> wrote:
>> Ben,
>>
>> Do you have a more complete stacktrace for this exception?  That might
>> help us find out what the root cause of the problem is.
>>
>> Regards,
>>
>> Gert Vanthienen
>> ------------------------
>> Open Source SOA: http://fusesource.com
>> Blog: http://gertvanthienen.blogspot.com/
>>
>>
>>
>> 2009/5/11 Brown, Ben <be...@bluefingroup.co.uk>:
>>> I am using the CXF-BC component in Servicemix 3.3 to connect to an
>>> external web service for sending SMS messages.  The configuration of my
>>> xbean.xml is shown below:
>>>
>>> <cxfbc:provider
>>>        wsdl="http://ws.textanywhere.net/TA_SMS.asmx?wsdl"
>>>      service="text:TextAnywhere_SMS"
>>>      endpoint="TextAnywhere_SMSSoap"
>>>      useJBIWrapper="false"
>>>      useSOAPEnvelope="false"/>
>>>
>>> I am using SoapUI to generate a sample request message for testing.
>>> This sample request is placed onto a JMS queue in JConsole with a Camel
>>> route using the JBI component sending the message to the CXF endpoint
>>> above.  Route shown below:
>>>
>>> from("activemq:queue.sms.request")
>>>                // Send to TextAnywhere Web Service
>>>
>>> .to("jbi:service:http://ws.textanywhere.net/TA_WS/TextAnywhere_SMS?opera
>>> tion={http://ws.textanywhere.net/TA_WS}SendSMSEx&mep=in-out").convertBod
>>> yTo(String.class)
>>>
>>> The sample request (shown below) contains a parameter called "Body",
>>> however this seems to break the parser and prevents the webservice from
>>> being called with the following error: fault: <?xml version="1.0"
>>> encoding="UTF-8"?><JBIFault
>>> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
>>> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
>>> org.w3c.dom.Element</detail></JBIFault>
>>>
>>> Sample Message (client_id and client_pass values removed):
>>>
>>> <ta:SendSMSEx xmlns:ta="http://ws.textanywhere.net/TA_WS">
>>>         <!--Optional:-->
>>>         <ta:Client_ID>xxxxxx</ta:Client_ID>
>>>         <!--Optional:-->
>>>         <ta:Client_Pass>xxxxxx</ta:Client_Pass>
>>>         <!--Optional:-->
>>>         <ta:Client_Ref>TEST</ta:Client_Ref>
>>>         <!--Optional:-->
>>>         <ta:Billing_Ref>TEST</ta:Billing_Ref>
>>>         <ta:Connection>1</ta:Connection>
>>>         <!--Optional:-->
>>>         <ta:Originator>Bluefin</ta:Originator>
>>>         <ta:OType>1</ta:OType>
>>>         <!--Optional:-->
>>>         <ta:DestinationEx>+4470000000</ta:DestinationEx>
>>>         <!--Optional:-->
>>>        <ta:Body>Test</ta:Body>
>>>         <ta:SMS_Type>0</ta:SMS_Type>
>>>         <ta:Reply_Type>0</ta:Reply_Type>
>>>         <!--Optional:-->
>>>         <ta:Reply_Data></ta:Reply_Data>
>>>      </ta:SendSMSEx>
>>>
>>>
>>> This error only occurs when the Body element is present in the message.
>>> If I remove this then I get the error "Server was unable to process
>>> request. --> Object reference not set to an instance of an object" in
>>> the fault response message - which is normally seen when the message is
>>> malformed (as it's missing the body element).
>>>
>>> I'm not sure which classes are actually throwing this JBI error above
>>> and so I am unable to provide further debugging information, however I
>>> am certain that no message is sent to the web service (none appears in
>>> Wireshark).
>>>
>>> Thanks in advance for your time and help.
>>>
>>> Ben Brown
>>>
>>> This email and any files or information it contains are confidential and
>>> may be privileged.  It is for the intended addressee(s) only.  The
>>> unauthorised use, disclosure or copying of this email or any information
>>> it contains, is prohibited and could, in certain circumstances be a
>>> criminal offence. If you are not the intended recipient you should not
>>> disseminate or copy this email.  Please notify the sender immediately
>>> and delete this message from your system.
>>>
>>> Please note that any opinions presented in this email are solely those
> of
>>> the author (or those of a third party whose statement is forwarded) and
>>> do not necessarily represent those of any company within the Bluefin
>>> Group Limited group of companies.
>>>
>>> Email transmission cannot be guaranteed to be secure or error free as
>>> information could be intercepted, corrupted, lost, destroyed, late in
>>> arriving or incomplete as a result of the transmission process.  The
>>> sender therefore does not accept liability for any errors or omissions
> in
>>> the contents of this message which arise as a result of email
>>> transmission.
>>>
>>> WARNING: Computer viruses can be transmitted by email. The recipient
>>> should check this email and any attachments for the presence of viruses.
>>>  The Bluefin Group Limited group of companies accepts no liability for
>>> any damage caused by any virus transmitted by this email.
>>>
>
--------------------------------------------------------------
Protection | Management | Compliance - scanned for viruses and unwanted content by emailsystems

Why use a managed email service? Click here to find out
This email and any files or information it contains are confidential and may be privileged.  It is for the intended addressee(s) only.  The unauthorised use, disclosure or copying of this email or any information it contains, is prohibited and could, in certain circumstances be a criminal offence. If you are not the intended recipient you should not disseminate or copy this email.  Please notify the sender immediately and delete this message from your system. 

Please note that any opinions presented in this email are solely those of the author (or those of a third party whose statement is forwarded) and do not necessarily represent those of any company within the Bluefin Group Limited group of companies.

Email transmission cannot be guaranteed to be secure or error free as information could be intercepted, corrupted, lost, destroyed, late in arriving or incomplete as a result of the transmission process.  The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of email transmission.

WARNING: Computer viruses can be transmitted by email. The recipient should check this email and any attachments for the presence of viruses.  The Bluefin Group Limited group of companies accepts no liability for any damage caused by any virus transmitted by this email.

Re: Problem with CXF-BC Web Service and node called "Body"

Posted by Gert Vanthienen <ge...@gmail.com>.
Ben,

That class is part of the CXF-BC component and can be found in the
https://svn.apache.org/repos/asf/servicemix/components/bindings/servicemix-cxf-bc/trunk
project.
You can view it as
http://svn.eu.apache.org/viewvc/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/main/java/org/apache/servicemix/cxfbc/interceptors/JbiOutWsdl1Interceptor.java?view=log

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/5/11  <be...@ben-brown.co.uk>:
> Hi Gert
>
> Unfortunately that is the only error message / stack trace visible - this
> is partly why I'm so stuck as I'm not sure on where the error is coming
> from.
>
> I have just managed to turn on extra logging for CXF which gives me the
> following in my log4j file.  This seems to suggest the error is thrown from
> the following class:
> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.  I'm
> currently trying to find this in SVN, but haven't managed to find it with
> the intention of setting up remote debugging in Eclipse to see if I can
> track down some more information.
>
> Thanks
>
> Ben Brown
>
> --------------------------------------
>
>
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor@643b04
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor@b3bb6b
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor
> org.apache.servicemix.cxfbc.interceptors.JbiOutInterceptor@165f6e3
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@1d5aaaf
> DEBUG - cxf.phase.PhaseInterceptorChain - Adding interceptor
> org.apache.cxf.interceptor.StaxOutInterceptor$StaxOutEndingInterceptor@152ee1e
> to phase pre-stream-ending
> DEBUG - cxf.phase.PhaseInterceptorChain - Chain
> org.apache.cxf.phase.PhaseInterceptorChain@d96a88 was modified. Current
> flow:
>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>  write [SoapOutInterceptor]
>  marshal [JbiOutWsdl1Interceptor]
>  pre-stream-ending [StaxOutEndingInterceptor]
>
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@5e89f7
> DEBUG - cxf.phase.PhaseInterceptorChain - Adding interceptor
> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@1c30e39
> to phase write-ending
> DEBUG - cxf.phase.PhaseInterceptorChain - Chain
> org.apache.cxf.phase.PhaseInterceptorChain@d96a88 was modified. Current
> flow:
>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>  write [SoapOutInterceptor]
>  marshal [JbiOutWsdl1Interceptor]
>  write-ending [SoapOutEndingInterceptor]
>  pre-stream-ending [StaxOutEndingInterceptor]
>
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
> interceptor
> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor@133c757
> INFO  - cxf.phase.PhaseInterceptorChain - Interceptor has thrown exception,
> unwinding now org.apache.xerces.dom.DeferredTextImpl cannot be cast to
> org.w3c.dom.Element
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor
> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor@133c757
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@5e89f7
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@1d5aaaf
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor
> org.apache.servicemix.cxfbc.interceptors.JbiOutInterceptor@165f6e3
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor@b3bb6b
> DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
> interceptor
> org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor@643b04
> DEBUG - jbi.messaging.DeliveryChannelImpl - Send
> ID:140.140.144.118-1212ffce63b-10:0 in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - jbi.security.SecuredBroker     - send exchange with secure broker
> DEBUG - flow.seda.SedaFlow             - Called Flow send
> DEBUG - flow.seda.SedaQueue            -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@85e7b4 dequeued
> exchange: InOut[
>  id: ID:140.140.144.118-1212ffce63b-10:0
>  status: Active
>  role: consumer
>  service: {http://ws.textanywhere.net/TA_WS}TextAnywhere_SMS
>  endpoint: TextAnywhere_SMSSoap
>  operation: {http://ws.textanywhere.net/TA_WS}SendSMSEx
>  in: <?xml version="1.0" encoding="UTF-8"?><ta:SendSMSEx
> xmlns:ta="http://ws.textanywhere.net/TA_WS">
> <ta:Client_ID>xxxxxx</ta:Client_ID>
> <ta:Client_Pass>xxxxxx</ta:Client_Pass>
> <ta:Client_Ref>1</ta:Client_Ref>
> <ta:Billing_Ref>ACTIVATION</ta:Billing_Ref>
> <ta:Connection>1</ta:Connection>
> <ta:Originator>Bluefin</ta:Originator>
> <ta:OType>1</ta:OType>
> <ta:DestinationEx>+4470000000</ta:DestinationEx>
> <ta:Body>test</ta:Body>
> <ta:SMS_Type>0</ta:SMS_Type>
> <ta:Reply_Type>0</ta:Reply_Type>
> <ta:Reply_Data/>
> </ta:SendSMSEx>
>  fault: <?xml version="1.0" encoding="UTF-8"?><JBIFault
> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
> org.w3c.dom.Element</detail></JBIFault>
> ]
> DEBUG - jbi.messaging.DeliveryChannelImpl - Send
> ID:140.140.144.118-1212ffce63b-10:0 in DeliveryChannel{servicemix-camel}
> DEBUG - jbi.security.SecuredBroker     - send exchange with secure broker
> DEBUG - flow.seda.SedaFlow             - Called Flow send
> DEBUG - flow.seda.SedaQueue            -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e2ac3b dequeued
> exchange: InOut[
>  id: ID:140.140.144.118-1212ffce63b-10:0
>  status: Done
>  role: provider
>  service: {http://ws.textanywhere.net/TA_WS}TextAnywhere_SMS
>  endpoint: TextAnywhere_SMSSoap
>  operation: {http://ws.textanywhere.net/TA_WS}SendSMSEx
>  in: <?xml version="1.0" encoding="UTF-8"?><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>1</ta:Client_Ref>
> <ta:Billing_Ref>ACTIVATION</ta:Billing_Ref>
> <ta:Connection>1</ta:Connection>
> <ta:Originator>Bluefin</ta:Originator>
> <ta:OType>1</ta:OType>
> <ta:DestinationEx>+440000000</ta:DestinationEx>
> <ta:Body>test</ta:Body>
> <ta:SMS_Type>0</ta:SMS_Type>
> <ta:Reply_Type>0</ta:Reply_Type>
> <ta:Reply_Data/>
> </ta:SendSMSEx>
>  fault: <?xml version="1.0" encoding="UTF-8"?><JBIFault
> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
> org.w3c.dom.Element</detail></JBIFault>
> ]
> DEBUG - servicemix.cxfbc.CxfBcComponent - Received exchange: status: Done,
> role: provider
> DEBUG - servicemix.cxfbc.CxfBcComponent - Retrieved correlation id:
> ID:140.140.144.118-1212ffce63b-10:0
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Mon, 11 May 2009 16:18:49 +0200, Gert Vanthienen
> <ge...@gmail.com> wrote:
>> Ben,
>>
>> Do you have a more complete stacktrace for this exception?  That might
>> help us find out what the root cause of the problem is.
>>
>> Regards,
>>
>> Gert Vanthienen
>> ------------------------
>> Open Source SOA: http://fusesource.com
>> Blog: http://gertvanthienen.blogspot.com/
>>
>>
>>
>> 2009/5/11 Brown, Ben <be...@bluefingroup.co.uk>:
>>> I am using the CXF-BC component in Servicemix 3.3 to connect to an
>>> external web service for sending SMS messages.  The configuration of my
>>> xbean.xml is shown below:
>>>
>>> <cxfbc:provider
>>>        wsdl="http://ws.textanywhere.net/TA_SMS.asmx?wsdl"
>>>      service="text:TextAnywhere_SMS"
>>>      endpoint="TextAnywhere_SMSSoap"
>>>      useJBIWrapper="false"
>>>      useSOAPEnvelope="false"/>
>>>
>>> I am using SoapUI to generate a sample request message for testing.
>>> This sample request is placed onto a JMS queue in JConsole with a Camel
>>> route using the JBI component sending the message to the CXF endpoint
>>> above.  Route shown below:
>>>
>>> from("activemq:queue.sms.request")
>>>                // Send to TextAnywhere Web Service
>>>
>>> .to("jbi:service:http://ws.textanywhere.net/TA_WS/TextAnywhere_SMS?opera
>>> tion={http://ws.textanywhere.net/TA_WS}SendSMSEx&mep=in-out").convertBod
>>> yTo(String.class)
>>>
>>> The sample request (shown below) contains a parameter called "Body",
>>> however this seems to break the parser and prevents the webservice from
>>> being called with the following error: fault: <?xml version="1.0"
>>> encoding="UTF-8"?><JBIFault
>>> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
>>> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
>>> org.w3c.dom.Element</detail></JBIFault>
>>>
>>> Sample Message (client_id and client_pass values removed):
>>>
>>> <ta:SendSMSEx xmlns:ta="http://ws.textanywhere.net/TA_WS">
>>>         <!--Optional:-->
>>>         <ta:Client_ID>xxxxxx</ta:Client_ID>
>>>         <!--Optional:-->
>>>         <ta:Client_Pass>xxxxxx</ta:Client_Pass>
>>>         <!--Optional:-->
>>>         <ta:Client_Ref>TEST</ta:Client_Ref>
>>>         <!--Optional:-->
>>>         <ta:Billing_Ref>TEST</ta:Billing_Ref>
>>>         <ta:Connection>1</ta:Connection>
>>>         <!--Optional:-->
>>>         <ta:Originator>Bluefin</ta:Originator>
>>>         <ta:OType>1</ta:OType>
>>>         <!--Optional:-->
>>>         <ta:DestinationEx>+4470000000</ta:DestinationEx>
>>>         <!--Optional:-->
>>>        <ta:Body>Test</ta:Body>
>>>         <ta:SMS_Type>0</ta:SMS_Type>
>>>         <ta:Reply_Type>0</ta:Reply_Type>
>>>         <!--Optional:-->
>>>         <ta:Reply_Data></ta:Reply_Data>
>>>      </ta:SendSMSEx>
>>>
>>>
>>> This error only occurs when the Body element is present in the message.
>>> If I remove this then I get the error "Server was unable to process
>>> request. --> Object reference not set to an instance of an object" in
>>> the fault response message - which is normally seen when the message is
>>> malformed (as it's missing the body element).
>>>
>>> I'm not sure which classes are actually throwing this JBI error above
>>> and so I am unable to provide further debugging information, however I
>>> am certain that no message is sent to the web service (none appears in
>>> Wireshark).
>>>
>>> Thanks in advance for your time and help.
>>>
>>> Ben Brown
>>>
>>> This email and any files or information it contains are confidential and
>>> may be privileged.  It is for the intended addressee(s) only.  The
>>> unauthorised use, disclosure or copying of this email or any information
>>> it contains, is prohibited and could, in certain circumstances be a
>>> criminal offence. If you are not the intended recipient you should not
>>> disseminate or copy this email.  Please notify the sender immediately
>>> and delete this message from your system.
>>>
>>> Please note that any opinions presented in this email are solely those
> of
>>> the author (or those of a third party whose statement is forwarded) and
>>> do not necessarily represent those of any company within the Bluefin
>>> Group Limited group of companies.
>>>
>>> Email transmission cannot be guaranteed to be secure or error free as
>>> information could be intercepted, corrupted, lost, destroyed, late in
>>> arriving or incomplete as a result of the transmission process.  The
>>> sender therefore does not accept liability for any errors or omissions
> in
>>> the contents of this message which arise as a result of email
>>> transmission.
>>>
>>> WARNING: Computer viruses can be transmitted by email. The recipient
>>> should check this email and any attachments for the presence of viruses.
>>>  The Bluefin Group Limited group of companies accepts no liability for
>>> any damage caused by any virus transmitted by this email.
>>>
>

Re: Problem with CXF-BC Web Service and node called "Body"

Posted by be...@ben-brown.co.uk.
Hi Gert

Unfortunately that is the only error message / stack trace visible - this
is partly why I'm so stuck as I'm not sure on where the error is coming
from.

I have just managed to turn on extra logging for CXF which gives me the
following in my log4j file.  This seems to suggest the error is thrown from
the following class:
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.  I'm
currently trying to find this in SVN, but haven't managed to find it with
the intention of setting up remote debugging in Eclipse to see if I can
track down some more information.

Thanks

Ben Brown

--------------------------------------


DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
interceptor
org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor@643b04
DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
interceptor
org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor@b3bb6b
DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
interceptor
org.apache.servicemix.cxfbc.interceptors.JbiOutInterceptor@165f6e3
DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
interceptor org.apache.cxf.interceptor.StaxOutInterceptor@1d5aaaf
DEBUG - cxf.phase.PhaseInterceptorChain - Adding interceptor
org.apache.cxf.interceptor.StaxOutInterceptor$StaxOutEndingInterceptor@152ee1e
to phase pre-stream-ending
DEBUG - cxf.phase.PhaseInterceptorChain - Chain
org.apache.cxf.phase.PhaseInterceptorChain@d96a88 was modified. Current
flow:
  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
  write [SoapOutInterceptor]
  marshal [JbiOutWsdl1Interceptor]
  pre-stream-ending [StaxOutEndingInterceptor]

DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
interceptor
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@5e89f7
DEBUG - cxf.phase.PhaseInterceptorChain - Adding interceptor
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@1c30e39
to phase write-ending
DEBUG - cxf.phase.PhaseInterceptorChain - Chain
org.apache.cxf.phase.PhaseInterceptorChain@d96a88 was modified. Current
flow:
  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
  write [SoapOutInterceptor]
  marshal [JbiOutWsdl1Interceptor]
  write-ending [SoapOutEndingInterceptor]
  pre-stream-ending [StaxOutEndingInterceptor]

DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleMessage on
interceptor
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor@133c757
INFO  - cxf.phase.PhaseInterceptorChain - Interceptor has thrown exception,
unwinding now org.apache.xerces.dom.DeferredTextImpl cannot be cast to
org.w3c.dom.Element
DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
interceptor
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor@133c757
DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
interceptor
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@5e89f7
DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
interceptor org.apache.cxf.interceptor.StaxOutInterceptor@1d5aaaf
DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
interceptor
org.apache.servicemix.cxfbc.interceptors.JbiOutInterceptor@165f6e3
DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
interceptor
org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor@b3bb6b
DEBUG - cxf.phase.PhaseInterceptorChain - Invoking handleFault on
interceptor
org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor@643b04
DEBUG - jbi.messaging.DeliveryChannelImpl - Send
ID:140.140.144.118-1212ffce63b-10:0 in DeliveryChannel{servicemix-cxf-bc}
DEBUG - jbi.security.SecuredBroker     - send exchange with secure broker
DEBUG - flow.seda.SedaFlow             - Called Flow send
DEBUG - flow.seda.SedaQueue            -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@85e7b4 dequeued
exchange: InOut[
  id: ID:140.140.144.118-1212ffce63b-10:0
  status: Active
  role: consumer
  service: {http://ws.textanywhere.net/TA_WS}TextAnywhere_SMS
  endpoint: TextAnywhere_SMSSoap
  operation: {http://ws.textanywhere.net/TA_WS}SendSMSEx
  in: <?xml version="1.0" encoding="UTF-8"?><ta:SendSMSEx
xmlns:ta="http://ws.textanywhere.net/TA_WS">
<ta:Client_ID>xxxxxx</ta:Client_ID>
<ta:Client_Pass>xxxxxx</ta:Client_Pass>
<ta:Client_Ref>1</ta:Client_Ref>
<ta:Billing_Ref>ACTIVATION</ta:Billing_Ref>
<ta:Connection>1</ta:Connection>
<ta:Originator>Bluefin</ta:Originator>
<ta:OType>1</ta:OType>
<ta:DestinationEx>+4470000000</ta:DestinationEx>
<ta:Body>test</ta:Body>
<ta:SMS_Type>0</ta:SMS_Type>
<ta:Reply_Type>0</ta:Reply_Type>
<ta:Reply_Data/>
</ta:SendSMSEx>
  fault: <?xml version="1.0" encoding="UTF-8"?><JBIFault
xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
org.w3c.dom.Element</detail></JBIFault>
]
DEBUG - jbi.messaging.DeliveryChannelImpl - Send
ID:140.140.144.118-1212ffce63b-10:0 in DeliveryChannel{servicemix-camel}
DEBUG - jbi.security.SecuredBroker     - send exchange with secure broker
DEBUG - flow.seda.SedaFlow             - Called Flow send
DEBUG - flow.seda.SedaQueue            -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e2ac3b dequeued
exchange: InOut[
  id: ID:140.140.144.118-1212ffce63b-10:0
  status: Done
  role: provider
  service: {http://ws.textanywhere.net/TA_WS}TextAnywhere_SMS
  endpoint: TextAnywhere_SMSSoap
  operation: {http://ws.textanywhere.net/TA_WS}SendSMSEx
  in: <?xml version="1.0" encoding="UTF-8"?><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>1</ta:Client_Ref>
<ta:Billing_Ref>ACTIVATION</ta:Billing_Ref>
<ta:Connection>1</ta:Connection>
<ta:Originator>Bluefin</ta:Originator>
<ta:OType>1</ta:OType>
<ta:DestinationEx>+440000000</ta:DestinationEx>
<ta:Body>test</ta:Body>
<ta:SMS_Type>0</ta:SMS_Type>
<ta:Reply_Type>0</ta:Reply_Type>
<ta:Reply_Data/>
</ta:SendSMSEx>
  fault: <?xml version="1.0" encoding="UTF-8"?><JBIFault
xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
org.w3c.dom.Element</detail></JBIFault>
]
DEBUG - servicemix.cxfbc.CxfBcComponent - Received exchange: status: Done,
role: provider
DEBUG - servicemix.cxfbc.CxfBcComponent - Retrieved correlation id:
ID:140.140.144.118-1212ffce63b-10:0

















On Mon, 11 May 2009 16:18:49 +0200, Gert Vanthienen
<ge...@gmail.com> wrote:
> Ben,
> 
> Do you have a more complete stacktrace for this exception?  That might
> help us find out what the root cause of the problem is.
> 
> Regards,
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 
> 2009/5/11 Brown, Ben <be...@bluefingroup.co.uk>:
>> I am using the CXF-BC component in Servicemix 3.3 to connect to an
>> external web service for sending SMS messages.  The configuration of my
>> xbean.xml is shown below:
>>
>> <cxfbc:provider
>>        wsdl="http://ws.textanywhere.net/TA_SMS.asmx?wsdl"
>>      service="text:TextAnywhere_SMS"
>>      endpoint="TextAnywhere_SMSSoap"
>>      useJBIWrapper="false"
>>      useSOAPEnvelope="false"/>
>>
>> I am using SoapUI to generate a sample request message for testing.
>> This sample request is placed onto a JMS queue in JConsole with a Camel
>> route using the JBI component sending the message to the CXF endpoint
>> above.  Route shown below:
>>
>> from("activemq:queue.sms.request")
>>                // Send to TextAnywhere Web Service
>>
>> .to("jbi:service:http://ws.textanywhere.net/TA_WS/TextAnywhere_SMS?opera
>> tion={http://ws.textanywhere.net/TA_WS}SendSMSEx&mep=in-out").convertBod
>> yTo(String.class)
>>
>> The sample request (shown below) contains a parameter called "Body",
>> however this seems to break the parser and prevents the webservice from
>> being called with the following error: fault: <?xml version="1.0"
>> encoding="UTF-8"?><JBIFault
>> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
>> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
>> org.w3c.dom.Element</detail></JBIFault>
>>
>> Sample Message (client_id and client_pass values removed):
>>
>> <ta:SendSMSEx xmlns:ta="http://ws.textanywhere.net/TA_WS">
>>         <!--Optional:-->
>>         <ta:Client_ID>xxxxxx</ta:Client_ID>
>>         <!--Optional:-->
>>         <ta:Client_Pass>xxxxxx</ta:Client_Pass>
>>         <!--Optional:-->
>>         <ta:Client_Ref>TEST</ta:Client_Ref>
>>         <!--Optional:-->
>>         <ta:Billing_Ref>TEST</ta:Billing_Ref>
>>         <ta:Connection>1</ta:Connection>
>>         <!--Optional:-->
>>         <ta:Originator>Bluefin</ta:Originator>
>>         <ta:OType>1</ta:OType>
>>         <!--Optional:-->
>>         <ta:DestinationEx>+4470000000</ta:DestinationEx>
>>         <!--Optional:-->
>>        <ta:Body>Test</ta:Body>
>>         <ta:SMS_Type>0</ta:SMS_Type>
>>         <ta:Reply_Type>0</ta:Reply_Type>
>>         <!--Optional:-->
>>         <ta:Reply_Data></ta:Reply_Data>
>>      </ta:SendSMSEx>
>>
>>
>> This error only occurs when the Body element is present in the message.
>> If I remove this then I get the error "Server was unable to process
>> request. --> Object reference not set to an instance of an object" in
>> the fault response message - which is normally seen when the message is
>> malformed (as it's missing the body element).
>>
>> I'm not sure which classes are actually throwing this JBI error above
>> and so I am unable to provide further debugging information, however I
>> am certain that no message is sent to the web service (none appears in
>> Wireshark).
>>
>> Thanks in advance for your time and help.
>>
>> Ben Brown
>>
>> This email and any files or information it contains are confidential and
>> may be privileged.  It is for the intended addressee(s) only.  The
>> unauthorised use, disclosure or copying of this email or any information
>> it contains, is prohibited and could, in certain circumstances be a
>> criminal offence. If you are not the intended recipient you should not
>> disseminate or copy this email.  Please notify the sender immediately
>> and delete this message from your system.
>>
>> Please note that any opinions presented in this email are solely those
of
>> the author (or those of a third party whose statement is forwarded) and
>> do not necessarily represent those of any company within the Bluefin
>> Group Limited group of companies.
>>
>> Email transmission cannot be guaranteed to be secure or error free as
>> information could be intercepted, corrupted, lost, destroyed, late in
>> arriving or incomplete as a result of the transmission process.  The
>> sender therefore does not accept liability for any errors or omissions
in
>> the contents of this message which arise as a result of email
>> transmission.
>>
>> WARNING: Computer viruses can be transmitted by email. The recipient
>> should check this email and any attachments for the presence of viruses.
>>  The Bluefin Group Limited group of companies accepts no liability for
>> any damage caused by any virus transmitted by this email.
>>

Re: Problem with CXF-BC Web Service and node called "Body"

Posted by Gert Vanthienen <ge...@gmail.com>.
Ben,

Do you have a more complete stacktrace for this exception?  That might
help us find out what the root cause of the problem is.

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/5/11 Brown, Ben <be...@bluefingroup.co.uk>:
> I am using the CXF-BC component in Servicemix 3.3 to connect to an
> external web service for sending SMS messages.  The configuration of my
> xbean.xml is shown below:
>
> <cxfbc:provider
>        wsdl="http://ws.textanywhere.net/TA_SMS.asmx?wsdl"
>      service="text:TextAnywhere_SMS"
>      endpoint="TextAnywhere_SMSSoap"
>      useJBIWrapper="false"
>      useSOAPEnvelope="false"/>
>
> I am using SoapUI to generate a sample request message for testing.
> This sample request is placed onto a JMS queue in JConsole with a Camel
> route using the JBI component sending the message to the CXF endpoint
> above.  Route shown below:
>
> from("activemq:queue.sms.request")
>                // Send to TextAnywhere Web Service
>
> .to("jbi:service:http://ws.textanywhere.net/TA_WS/TextAnywhere_SMS?opera
> tion={http://ws.textanywhere.net/TA_WS}SendSMSEx&mep=in-out").convertBod
> yTo(String.class)
>
> The sample request (shown below) contains a parameter called "Body",
> however this seems to break the parser and prevents the webservice from
> being called with the following error: fault: <?xml version="1.0"
> encoding="UTF-8"?><JBIFault
> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><detail
> xmlns="">org.apache.xerces.dom.DeferredTextImpl cannot be cast to
> org.w3c.dom.Element</detail></JBIFault>
>
> Sample Message (client_id and client_pass values removed):
>
> <ta:SendSMSEx xmlns:ta="http://ws.textanywhere.net/TA_WS">
>         <!--Optional:-->
>         <ta:Client_ID>xxxxxx</ta:Client_ID>
>         <!--Optional:-->
>         <ta:Client_Pass>xxxxxx</ta:Client_Pass>
>         <!--Optional:-->
>         <ta:Client_Ref>TEST</ta:Client_Ref>
>         <!--Optional:-->
>         <ta:Billing_Ref>TEST</ta:Billing_Ref>
>         <ta:Connection>1</ta:Connection>
>         <!--Optional:-->
>         <ta:Originator>Bluefin</ta:Originator>
>         <ta:OType>1</ta:OType>
>         <!--Optional:-->
>         <ta:DestinationEx>+4470000000</ta:DestinationEx>
>         <!--Optional:-->
>        <ta:Body>Test</ta:Body>
>         <ta:SMS_Type>0</ta:SMS_Type>
>         <ta:Reply_Type>0</ta:Reply_Type>
>         <!--Optional:-->
>         <ta:Reply_Data></ta:Reply_Data>
>      </ta:SendSMSEx>
>
>
> This error only occurs when the Body element is present in the message.
> If I remove this then I get the error "Server was unable to process
> request. --&gt; Object reference not set to an instance of an object" in
> the fault response message - which is normally seen when the message is
> malformed (as it's missing the body element).
>
> I'm not sure which classes are actually throwing this JBI error above
> and so I am unable to provide further debugging information, however I
> am certain that no message is sent to the web service (none appears in
> Wireshark).
>
> Thanks in advance for your time and help.
>
> Ben Brown
>
> This email and any files or information it contains are confidential and may be privileged.  It is for the intended addressee(s) only.  The unauthorised use, disclosure or copying of this email or any information it contains, is prohibited and could, in certain circumstances be a criminal offence. If you are not the intended recipient you should not disseminate or copy this email.  Please notify the sender immediately and delete this message from your system.
>
> Please note that any opinions presented in this email are solely those of the author (or those of a third party whose statement is forwarded) and do not necessarily represent those of any company within the Bluefin Group Limited group of companies.
>
> Email transmission cannot be guaranteed to be secure or error free as information could be intercepted, corrupted, lost, destroyed, late in arriving or incomplete as a result of the transmission process.  The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of email transmission.
>
> WARNING: Computer viruses can be transmitted by email. The recipient should check this email and any attachments for the presence of viruses.  The Bluefin Group Limited group of companies accepts no liability for any damage caused by any virus transmitted by this email.
>