Hi Claus, It has come out due to private method `populateExchangeWithBreadcrumbFromMessageContext` used in SpringWebserviceConsumer.
I would not prefer depending on servlet API, has not got around with better option to resolve http transport headers. other option would perhaps be depending axiom. i did not like that too. On Thu, Oct 12, 2017 at 4:40 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > 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 >