Hi Onder I wonder if this is correct, does spring-ws have any mandatory dependency on the servlet API? With this commit there is suddenly a hardcoded dependency on http servlet, maybe this is wrong.
On Thu, Oct 12, 2017 at 3:36 PM, <ond...@apache.org> wrote: > Repository: camel > Updated Branches: > refs/heads/master 9241cd211 -> ece63d7c9 > > > CAMEL-11892 - breadcrumbId class cast failure if other than SAAJ used as > WebServiceMessage impl > > > Project: http://git-wip-us.apache.org/repos/asf/camel/repo > Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ece63d7c > Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ece63d7c > Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ece63d7c > > Branch: refs/heads/master > Commit: ece63d7c9292fc16eb469f3713b905045ab33149 > Parents: 9241cd2 > Author: onders86 <ondersezgin+git...@gmail.com> > Authored: Thu Oct 12 10:19:33 2017 +0300 > Committer: onders86 <ondersezgin+git...@gmail.com> > Committed: Thu Oct 12 16:36:28 2017 +0300 > > ---------------------------------------------------------------------- > components/camel-spring-ws/pom.xml | 6 ++++++ > .../spring/ws/SpringWebserviceConsumer.java | 20 +++++++++++++++++++- > 2 files changed, 25 insertions(+), 1 deletion(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/camel/blob/ece63d7c/components/camel-spring-ws/pom.xml > ---------------------------------------------------------------------- > diff --git a/components/camel-spring-ws/pom.xml > b/components/camel-spring-ws/pom.xml > index 19220a1..c04f104 100644 > --- a/components/camel-spring-ws/pom.xml > +++ b/components/camel-spring-ws/pom.xml > @@ -52,6 +52,12 @@ > <groupId>org.apache.camel</groupId> > <artifactId>camel-spring</artifactId> > </dependency> > + <dependency> > + <groupId>javax.servlet</groupId> > + <artifactId>javax.servlet-api</artifactId> > + <version>${javax.servlet-api-version}</version> > + <scope>provided</scope> > + </dependency> > > <!-- spring --> > <dependency> > > http://git-wip-us.apache.org/repos/asf/camel/blob/ece63d7c/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java > ---------------------------------------------------------------------- > diff --git > a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java > > b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java > index 5c9b72f..f2ba406 100644 > --- > a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java > +++ > b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java > @@ -18,6 +18,8 @@ package org.apache.camel.component.spring.ws; > > import java.util.Iterator; > import java.util.Map; > + > +import javax.servlet.http.HttpServletRequest; > import javax.xml.namespace.QName; > import javax.xml.soap.MimeHeaders; > import javax.xml.soap.SOAPMessage; > @@ -82,7 +84,15 @@ public class SpringWebserviceConsumer extends > DefaultConsumer implements Message > } > > private void > populateExchangeWithBreadcrumbFromMessageContext(MessageContext > messageContext, Exchange exchange) { > - SaajSoapMessage saajSoap = (SaajSoapMessage) > messageContext.getRequest(); > + if (messageContext.getRequest() instanceof SaajSoapMessage) { > + SaajSoapMessage saajSoap = (SaajSoapMessage) > messageContext.getRequest(); > + populateExchangeWithBreadcrumbFromSaajMessage(exchange, > saajSoap); > + } else { > + populateExchangeWithBreadcrumbFromMessageContext(exchange, > messageContext); > + } > + } > + > + private void populateExchangeWithBreadcrumbFromSaajMessage(Exchange > exchange, SaajSoapMessage saajSoap) { > SOAPMessage soapMessageRequest = null; > if (saajSoap != null) { > soapMessageRequest = saajSoap.getSaajMessage(); > @@ -102,6 +112,14 @@ public class SpringWebserviceConsumer extends > DefaultConsumer implements Message > } > } > > + private void populateExchangeWithBreadcrumbFromMessageContext(Exchange > exchange, MessageContext messageContext) { > + if (messageContext != null) { > + HttpServletRequest obj = (HttpServletRequest) > messageContext.getProperty("transport.http.servletRequest"); > + String breadcrumbId = (String) > obj.getHeader(Exchange.BREADCRUMB_ID); > + exchange.getIn().setHeader(Exchange.BREADCRUMB_ID, breadcrumbId); > + } > + } > + > private void populateExchangeFromMessageContext(MessageContext > messageContext, Exchange exchange) { > populateExchangeWithPropertiesFromMessageContext(messageContext, > exchange); > > -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2