Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-8929

Camel spring-ws. Can't specify messageFactory parameter in endpoint uri

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Not A Problem
    • 2.15.2
    • 2.16.0
    • camel-spring-ws
    • None
    • Unknown

    Description

      i use camel with spring-ws. i configure routes:

      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:util="http://www.springframework.org/schema/util"
             xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans.xsd
                     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
      	<camelContext id="someID"  xmlns="http://camel.apache.org/schema/spring">
      	    <endpoint id="externalRequest" uri="spring-ws\:rootqname\:{http\://somehost.com/xsd/some-xsd}method?endpointMapping\=\endpointMapping&messageFactory\=\#soap12MessageFactory" />
      	    <endpoint id="internalRequest" uri="spring-ws\:http://localhost:8080/someMock?messageSender\=\#someMessageSender" />
      	    <route id="fromExternal">
      	        <from ref="externalRequest" />
      	        <to uri="direct:toInternalSystem" />
      	    </route>
      	    <route id="toInternal" trace = "true">
      	        <from uri="direct:toInternalSystem" />
      	        <log message="Received  ${body}" />
      	        <to ref="internalRequest" pattern="InOut" />
      	    </route>
      	</camelContext>
      
      	<bean id="soap12MessageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory">
      	    <property name="soapVersion">
      	        <util:constant static-field="org.springframework.ws.soap.SoapVersion.SOAP_12"/>
      	    </property>
      	</bean>
      </beans>
      

      and during startup i get error:

      SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
      org.apache.camel.RuntimeCamelException: org.apache.camel.FailedToCreateRouteException: Failed to create route fromAxToEsb: Route(fromAxToEsb)[[From[ref:returnsAdviceRequestAx]] -> [To... because of org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'returnsAdviceRequestAx': FactoryBean threw exception on object creation; nested exception is org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: spring-ws://rootqname:%7Bhttp://lamoda.ru/xsd/goods-movement%7Dadvice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: Failed to resolve endpoint: spring-ws://rootqname:(http://lamoda.ru/xsd/goods-movement)advice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{messageFactory=#soap12MessageFactory}]
      	at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1619)
      	at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:123)
      	at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:332)
      	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:151)
      	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:128)
      	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:331)
      	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:773)
      	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483)
      	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
      	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
      	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
      	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4994)
      	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5492)
      	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
      	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
      	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
      	at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1762)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
      	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
      	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
      	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618)
      	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
      	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
      	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
      	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
      	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
      	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
      	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
      	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
      	at sun.rmi.transport.Transport$1.run(Transport.java:177)
      	at sun.rmi.transport.Transport$1.run(Transport.java:174)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
      	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
      	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
      	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create route fromAxToEsb: Route(fromAxToEsb)[[From[ref:returnsAdviceRequestAx]] -> [To... because of org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'returnsAdviceRequestAx': FactoryBean threw exception on object creation; nested exception is org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: spring-ws://rootqname:%7Bhttp://lamoda.ru/xsd/goods-movement%7Dadvice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: Failed to resolve endpoint: spring-ws://rootqname:(http://lamoda.ru/xsd/goods-movement)advice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{messageFactory=#soap12MessageFactory}]
      	at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:190)
      	at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:841)
      	at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2895)
      	at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:2618)
      	at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:167)
      	at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2467)
      	at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2463)
      	at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2486)
      	at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2463)
      	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
      	at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2432)
      	at org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:255)
      	at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:121)
      	... 52 more
      Caused by: org.apache.camel.RuntimeCamelException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'returnsAdviceRequestAx': FactoryBean threw exception on object creation; nested exception is org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: spring-ws://rootqname:%7Bhttp://lamoda.ru/xsd/goods-movement%7Dadvice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: Failed to resolve endpoint: spring-ws://rootqname:(http://lamoda.ru/xsd/goods-movement)advice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{messageFactory=#soap12MessageFactory}]
      	at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1619)
      	at org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookupByNameAndType(PropertyPlaceholderDelegateRegistry.java:65)
      	at org.apache.camel.impl.DefaultRouteContext.lookup(DefaultRouteContext.java:142)
      	at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:119)
      	at org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:70)
      	at org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:89)
      	at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1008)
      	at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:185)
      	... 64 more
      Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'returnsAdviceRequestAx': FactoryBean threw exception on object creation; nested exception is org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: spring-ws://rootqname:%7Bhttp://lamoda.ru/xsd/goods-movement%7Dadvice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: Failed to resolve endpoint: spring-ws://rootqname:(http://lamoda.ru/xsd/goods-movement)advice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{messageFactory=#soap12MessageFactory}]
      	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175)
      	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)
      	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1517)
      	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:251)
      	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
      	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:962)
      	at org.apache.camel.spring.spi.ApplicationContextRegistry.lookupByNameAndType(ApplicationContextRegistry.java:47)
      	at org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookupByNameAndType(PropertyPlaceholderDelegateRegistry.java:63)
      	... 70 more
      Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: spring-ws://rootqname:%7Bhttp://lamoda.ru/xsd/goods-movement%7Dadvice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: Failed to resolve endpoint: spring-ws://rootqname:(http://lamoda.ru/xsd/goods-movement)advice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{messageFactory=#soap12MessageFactory}]
      	at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:578)
      	at org.apache.camel.core.xml.AbstractCamelEndpointFactoryBean.getObject(AbstractCamelEndpointFactoryBean.java:55)
      	at org.apache.camel.spring.CamelEndpointFactoryBean.getObject(CamelEndpointFactoryBean.java:55)
      	at org.apache.camel.spring.CamelEndpointFactoryBean.getObject(CamelEndpointFactoryBean.java:38)
      	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
      	... 77 more
      Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: spring-ws://rootqname:(http://lamoda.ru/xsd/goods-movement)advice?endpointMapping=endpointMapping&messageFactory=%23soap12MessageFactory due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{messageFactory=#soap12MessageFactory}]
      	at org.apache.camel.impl.DefaultComponent.validateParameters(DefaultComponent.java:183)
      	at org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:128)
      	at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:558)
      	... 81 more
      

      As i see org.apache.camel.component.spring.ws.SpringWebserviceConfiguration does not have messageFactory property
      but in documentation (http://camel.apache.org/spring-web-services.html)
      i read

      messageFactory --- 
      Option to provide a custom WebServiceMessageFactory. For example when you want Apache Axiom to handle web service messages instead of SAAJ

      Attachments

        Activity

          People

            davsclaus Claus Ibsen
            bakomchik Bakomchev Dmitriy
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: