Hi All
I've been trying to find an example of this, but haven't got any yet. I
am attempting to add a SoapHeader property to my message, but cannot
work out how to do this. My xbean.xml is as follows:
<cxfbc:provider
wsdl="classpath:test.wsdl"
service="b:CorporateOperations"
endpoint="BasicHttpBinding_ICorporateOperations_ICorporateOperations"
useJBIWrapper="false"/>
I can't understand how to add the SoapHeader as the message seems to
have the SoapEnvelope and SoapBody tags added automatically, which means
that it's impossible to just specify it as part of my actual message.
Reading the comments in the code it appears that I would want to use
useJBIWrapper="false" and useSOAPEnvelope="true", but this appears to
give a XML parsing error (shown below).
I'm creating my message with the following XSLT transform:
<xsl:template match="*">
<xsl:element name="soapenv:Envelope"
namespace="http://schemas.xmlsoap.org/soap/envelope/">
<xsl:element name="soapenv:Header"
namespace="http://schemas.xmlsoap.org/soap/envelope/">
<xsl:element name="win:SecretToken"
namespace="http://schemas.datacontract.org/2004/07/Test.SoapHeaderFactor
y"> </xsl:element>
</xsl:element>
<xsl:element name="soapenv:Body"
namespace="http://schemas.xmlsoap.org/soap/envelope/">
<xsl:element name="b:SelectAllFundsAsList"
namespace="http://www.test-company.co.uk/B_wcfCorporateOperations.svc"/>
</xsl:element>
</xsl:element>
</xsl:template>
Does anyone have any idea how to add the headers?
Thanks
Ben
14:13:17,633 | DEBUG - cxf.phase.PhaseInterceptorChain - Invoking
handleMessage on interceptor
org.apache.servicemix.cxfbc.interceptors.jbioutwsdl1intercep...@17aaccf
14:13:17,649 | INFO - cxf.phase.PhaseInterceptorChain - Interceptor has
thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: org.apache.xerces.dom.DeferredTextImpl
cannot be cast to org.w3c.dom.Element
at
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMe
ssage(JbiOutWsdl1Interceptor.java:149)
at
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMe
ssage(JbiOutWsdl1Interceptor.java:56)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
hain.java:236)
at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:245
)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeC
ycle.java:627)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBas
eLifeCycle.java:581)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncB
aseLifeCycle.java:535)
at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(Sync
LifeCycleWrapper.java:60)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(D
eliveryChannelImpl.java:623)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.j
ava: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:1
34)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassCastException:
org.apache.xerces.dom.DeferredTextImpl cannot be cast to
org.w3c.dom.Element
at
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMe
ssage(JbiOutWsdl1Interceptor.java:84)
... 14 more
14:13:17,649 | DEBUG - cxf.phase.PhaseInterceptorChain - Invoking
handleFault on interceptor
org.apache.servicemix.cxfbc.interceptors.jbioutwsdl1intercep...@17aaccf
14:13:17,649 | DEBUG - cxf.phase.PhaseInterceptorChain - Invoking
handleFault on interceptor
org.apache.cxf.binding.soap.interceptor.soapoutintercep...@2f53da
14:13:17,649 | DEBUG - cxf.phase.PhaseInterceptorChain - Invoking
handleFault on interceptor
org.apache.cxf.interceptor.staxoutintercep...@b4600c
14:13:17,649 | DEBUG - cxf.phase.PhaseInterceptorChain - Invoking
handleFault on interceptor
org.apache.servicemix.cxfbc.interceptors.jbioutintercep...@1fb39e3
14:13:17,649 | DEBUG - cxf.phase.PhaseInterceptorChain - Invoking
handleFault on interceptor
org.apache.cxf.binding.soap.interceptor.soapactionoutintercep...@12a1896
14:13:17,649 | DEBUG - cxf.phase.PhaseInterceptorChain - Invoking
handleFault on interceptor
org.apache.cxf.binding.soap.interceptor.soappreprotocoloutintercep...@e7
76e7
14:13:17,649 | DEBUG - cxf.phase.PhaseInterceptorChain - Invoking
handleFault on interceptor
org.apache.cxf.ws.policy.serverpolicyoutfaultintercep...@1f00de9
14:13:17,649 | DEBUG - cxf.phase.PhaseInterceptorChain - Invoking
handleFault on interceptor
org.apache.cxf.ws.policy.policyoutintercep...@1c7ea6e
14:13:17,665 | DEBUG - jbi.messaging.DeliveryChannelImpl - Send
ID:140.140.144.118-122e06341bb-3:0 in DeliveryChannel{servicemix-cxf-bc}
14:13:17,665 | DEBUG - jbi.security.SecuredBroker - send exchange
with secure broker
14:13:17,665 | DEBUG - flow.seda.SedaFlow - Called Flow send
14:13:17,680 | DEBUG - flow.seda.SedaQueue -
org.apache.servicemix.jbi.nmr.flow.seda.sedaqueu...@3c78ef dequeued
exchange: InOut[
id: ID:140.140.144.118-122e06341bb-3:0
status: Active
role: consumer
service:
{http://www.test-company.co.uk/B_wcfCorporateOperations.svc}CorporateOpe
rations
endpoint: BasicHttpBinding_ICorporateOperations_ICorporateOperations
operation:
{http://www.test-company.co.uk/B_wcfCorporateOperations.svc}SelectAllFun
dsAsList
in: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<win:SecretToken
xmlns:win="http://schemas.datacontract.org/2004/07/Test.SoapHeaderFactor
y"> </win:SecretToken>
</soapenv:Header>
<soapenv:Body>
<b:SelectAllFundsAsList
xmlns:b="http://www.test-company.co.uk/B_wcfCorporateOperations.svc"/>
</soapenv:Body>
</soapenv:Envelope>
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>
]
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.