On Thu, Feb 4, 2010 at 7:42 AM, Christian Schneider
<ch...@die-schneider.net> wrote:
> Hi Claus,
>
> I will try this but I guess then a CXF server would be broken as it expects
> the uppercase version. I could of course only activate the processor if the
> receiver is a tibco system. As a workaround this would work but it would
> mean that we can not easily switch a service from a tibco to a cxf
> implementation or the
> other way.

Huh if you look at the test you can use the interceptors to only match
endpoints that is destinated for tibco.
I assume you can differentiate endpoints urls between CXF and Tibco!

See wiki doc for interceptors as it can use * and reg exp to match as well.


>
> Btw. I found another solution. It is not very nice but could work.  See
> below. I change the message directly before it is sent.
>

Yeah when its JMS you can do that and/or use the messageConverter
option to map to JMS yourself.


> Greetings
>
> Christian
>
> -----
>
> public class MyJmsTemplate extends CamelJmsTemplate {
>    public MyJmsTemplate(JmsConfiguration conf, ConnectionFactory
> connectionFactory) {
>        super(conf, connectionFactory);
>    }
>
>   �...@override
>    protected void doSend(MessageProducer producer, Message message)
>            throws JMSException {
>        String soapAction = message.getStringProperty("SOAPAction");
>        message.setStringProperty("SoapAction", soapAction);
>        super.doSend(producer, message);
>    }
> }
>
> -----
>
> JmsComponent jms = JmsComponent.jmsComponent(new
> ActiveMQConnectionFactory());
>        jms.setJmsOperations(new MyJmsTemplate(jms.getConfiguration(),
> jms.getConfiguration().getTemplateConnectionFactory()));
>        myContext.addComponent("jms", jms);
>
>
>
> Am 04.02.2010 06:35, schrieb Claus Ibsen:
>>
>> On Wed, Feb 3, 2010 at 11:53 AM, Schneider Christian
>> <christian.schnei...@enbw.com>  wrote:
>>
>>>
>>> Hi all,
>>>
>>> we are using camel and cxf to do SOAP/JMS. The other side is sometimes a
>>> Tibco Business Works system. The problem there is that they use a non
>>> standard header for SOAPAction. In Business works they expect it to be
>>> spelled SoapAction.
>>>
>>>
>>
>> Should SOAPAction and SoapAction contain the same value?
>> If so its easy to work around just remove the header and add it with
>> the case that Tibco want.
>>
>> See this test:
>> http://svn.apache.org/viewvc?rev=906371&view=rev
>>
>>
>>
>>>
>>> To work around this I have written an interceptor for CXF that adds a
>>> second
>>> SoapAction header with the content of the SOAPAction header.
>>> see:
>>>
>>> http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/ap
>>>
>>> ache/cxf/binding/soap/interceptor/TibcoSoapActionInterceptor.java?view=marku
>>> p
>>>
>>> When we use the camel transport for cxf the message is the converted to a
>>> camel message. The problem is that the properties of a camel message are
>>> not
>>> case sensitive anymore. So only one of the headers is transfered.
>>>
>>> So business works never gets the header it expects.
>>>
>>> See the change in subversion:
>>>
>>> http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache
>>> /camel/impl/DefaultMessage.java?r1=630591&r2=893110&diff_format=h
>>>
>>> Any idea how to solve this? I of course would perfer a solution that
>>> needs
>>> no patch to camel.
>>>
>>> With a patch I could imagine the following:
>>> I thought I could perhaps add the second header in camel-jms. Perhaps
>>> this
>>> could be switched on in the jms endpoint config.
>>>
>>> Greetings
>>>
>>> Christian
>>>
>>>
>>> Christian Schneider
>>> Team Handel und Risikomanagement
>>> Informationsverarbeitung Business Solutions Trading
>>> EnBW Systeme Infrastruktur Support GmbH
>>>
>>> Informationsverarbeitung
>>> Business Solutions
>>> Handel und Dispatching
>>> Durlacher Allee 93
>>> 76131 Karlsruhe
>>>
>>> Tel : +49-(0)721-63-15482
>>> Mail: christian.schnei...@enbw.com
>>>
>>> Sitz der Gesellschaft: Karlsruhe
>>> Handelsregister: Amtsgericht Mannheim   HRB 108550
>>> Vorsitzender des Aufsichtsrats: Dr. Bernhard Beck
>>> Geschäftsführer: Jochen Adenau, Dr. Peter Krampf
>>>
>>>
>>>
>>
>>
>>
>
>
> --
>
> Christian Schneider
> ---
> http://www.liquid-reality.de
>
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to