[
https://issues.apache.org/jira/browse/CXF-6326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Le Van Lang closed CXF-6326.
----------------------------
Resolution: Implemented
This issued was fixed by using build-in class:
org.apache.cxf.binding.soap.interceptor.TibcoSoapActionInterceptor
> Unable to add custom property named "SOAPAction" to JMS header when using
> SOAP over JMS
> ---------------------------------------------------------------------------------------
>
> Key: CXF-6326
> URL: https://issues.apache.org/jira/browse/CXF-6326
> Project: CXF
> Issue Type: Test
> Components: Core, JMS, Transports
> Affects Versions: 3.0.4
> Environment: Sun JDK 1.7_update 26
> Server: TIBCO BW 5.12, TIBCO EMS 8.1
> Client: CXF 3.0.4
> Reporter: Le Van Lang
> Labels: JMS, SOAPAction, TIBCO
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> This issue was mentioned by this link:
> http://mail-archives.apache.org/mod_mbox/cxf-users/201010.mbox/%[email protected]%3E
> However, when using CXF 3.0.4 I was unable to add "SoapAction" custom
> property to PROPOTOL_HEADERS, although different name was added ok (eg:
> "SoapAction2"). Therefore, TIBCO BusinessWork can not activate server thread
> to process service request.
> This is my custom Interceptor to add custom header:
> // The class
> public class TibcoSoapActionInterceptor extends AbstractSoapInterceptor {
> private static final String SOAPACTION_TIBCO = "SoapAction";
> public TibcoSoapActionInterceptor() {
> super(Phase.PREPARE_SEND);
> }
> @Override
> public void handleMessage(SoapMessage soapMessage) throws Fault {
> Map<String, Object> headers = (Map<String, Object>)
> soapMessage.get(Message.PROTOCOL_HEADERS);
> if (headers != null &&
> headers.containsKey(SoapBindingConstants.SOAP_ACTION)) {
>
> // this custom property was replaced by "SOAPJMS_soapAction"
> standard name
> headers.put(SOAPACTION_TIBCO,
> headers.get(SoapBindingConstants.SOAP_ACTION));
>
> // This header property was added ok
> headers.put(SOAPACTION_TIBCO + "2",
> headers.get(SoapBindingConstants.SOAP_ACTION));
> }
> }
> }
> // The code to add interceptor
> // Add interceptors
> factory.getOutInterceptors().add(new LoggingOutInterceptor());
> factory.getOutInterceptors().add(new TibcoSoapActionInterceptor());
> // create client proxy
> CalculatorPortType port = (CalculatorPortType) factory.create();
> Please help to check it out as are there another way to add "SOAPAction"
> custom property to JMS header when using SOAP over JMS (i know TIBCO BW does
> not fully compatible with SOAP JMS standard but I'm using it in production) ?
> Many thanks!!!
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)