Hi Claus,
I don´t think this will work. DefaultMessage.setHeaders looks like
below. So the map I set will again be wrapped in a case insensitive map.
Any other idea or should it still work?
Greetings
Christian
---
public void setHeaders(Map<String, Object> headers) {
if (headers instanceof CaseInsensitiveMap) {
this.headers = headers;
} else {
// wrap it in a case insensitive map
this.headers = new CaseInsensitiveMap(headers);
}
}
Am 03.02.2010 14:44, 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.
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.
You can use a interceptSendToEndpoint and use a Processor to set a new
Map as HashMap with the 2 soap actions
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