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