Hi

Ah the NPE has been fixed in camel-core but its due the component that
creates the exchange is likely doing it the wrong way (without telling
which endpoint its from).

Let me dive into camel-spring-ws to see about that and fix it there too.

On Wed, Oct 21, 2015 at 1:12 PM, yuncil <jonas.stei...@hotmail.de> wrote:
> Hi guys,
>
> recently I try to expose a SOAP-WS with Spring-Boot and Camel, on
> Glassfish-4.0. I send my requests via SOAP-UI and they'll be received
> sucessfully by the WS. I can see the messages in the log-files but then
> camel throws a NullPointerException. More specific, the
> DefaultRuntimeEndpointRegistry class throws it. I think it could be a
> problem getting the request URI. Maybe you can help me.
>
> *Here is my set-up:*
>
> @Configuration
> public class ServiceConfigurator extends WsConfigurerAdapter {
>     Logger logger = Logger.getLogger(ServiceConfigurator.class);
>
>     private static final String CAMEL_URL_MAPPING = "/ws/*";
>
>     @Bean
>     public CamelEndpointMapping endpointMapping(ApplicationContext
> applicationContext) {
>         logger.info("Konfiguriere EndpointMapping...");
>         CamelEndpointMapping mapping = new CamelEndpointMapping();
>
>         return mapping;
>     }
>
>     @Bean
>     public ServletRegistrationBean
> messageDispatcherServlet(ApplicationContext applicationContext) {
>         logger.info("Konfiguriere MessageDispatcher...");
>         MessageDispatcherServlet servlet = new MessageDispatcherServlet();
>         servlet.setApplicationContext(applicationContext);
>         servlet.setTransformWsdlLocations(true);
>         ServletRegistrationBean bean = new ServletRegistrationBean(servlet,
> CAMEL_URL_MAPPING);
>         bean.setLoadOnStartup(1);
>         return bean;
>     }
>
> *The Camel-Route looks like this:*
>
> @Component
> public class ServiceRoutes extends RouteBuilder {
>     Logger logger = Logger.getLogger(ServiceRoutes.class);
>
>     @Override
>     public void configure() throws Exception {
>        logger.info("Konfiguriere Camel-Routes...");
>
>          from("spring-ws:soapaction:mySoapAction#endpointMapping")
>                .convertBodyTo(String.class)
>                .log(${body})
>                .setBody(simple("MyResponse"))
>                .end();
>
>     }
>
> *Here is my stacktrace:*
>
> Error notifying event ID-WSU05812-52703-1445423313461-0-2 exchange created:
> Exchange[ID-WSB03512-52703-1445423313461-0-2][SpringWebserviceMessage[SaajSoapMessage
> {http://example//search]]. This exception will be ignored.
> java.lang.NullPointerException
>         at
> org.apache.camel.impl.DefaultRuntimeEndpointRegistry.notify(DefaultRuntimeEndpointRegistry.java:245)
>         at 
> org.apache.camel.util.EventHelper.doNotifyEvent(EventHelper.java:805)
>         at
> org.apache.camel.util.EventHelper.notifyExchangeCreated(EventHelper.java:411)
>         at
> org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:123)
>         at
> org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:72)
>         at
> org.apache.camel.impl.DefaultUnitOfWorkFactory.createUnitOfWork(DefaultUnitOfWorkFactory.java:34)
>         at
> oRerg.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.createUnitOfWork(CamelInternalProcessor.java:663)
>         at
> org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.before(CamelInternalProcessor.java:631)
>         at
> org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.before(CamelInternalProcessor.java:608)
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:138)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87)
>         at
> org.apache.camel.component.spring.ws.SpringWebserviceConsumer.invoke(SpringWebserviceConsumer.java:61)
>         at
> org.springframework.ws.server.endpoint.adapter.MessageEndpointAdapter.invoke(MessageEndpointAdapter.java:43)
>         at
> org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:236)
>         at
> org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:176)
>         at
> org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:89)
>         at
> org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:61)
>         at
> org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:293)
>         at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967)
>         at
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:869)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
>         at
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>         at
> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
>         at
> org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:116)
>         at
> org.springframework.boot.context.web.ErrorPageFilter.access$000(ErrorPageFilter.java:60)
>         at
> org.springframework.boot.context.web.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:91)
>         at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>         at
> org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:109)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
>         at
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85)
>         at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
>         at
> org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
>         at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
>         at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
>         at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
>         at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
>         at
> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
>         at
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
>         at
> org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
>         at
> org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
>         at
> org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
>         at
> org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
>         at
> org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
>         at
> org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
>         at
> org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
>         at
> org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
>         at
> org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
>         at
> org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
>         at
> org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
>         at
> org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
>         at
> org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
>         at
> org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
>         at
> org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
>         at
> org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
>         at java.lang.Thread.run(Thread.java:745)
>
> *Here are my dependencies:*
>
> <dependencies>
>         <dependency>
>             <groupId>org.springframework.boot</groupId>
>             <artifactId>spring-boot-starter-web</artifactId>
>             <version>1.2.7.RELEASE</version>
>             <exclusions>
>                 <exclusion>
>                     <groupId>org.springframework.boot</groupId>
>                     <artifactId>spring-boot-starter-logging</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>org.springframework.boot</groupId>
>                     <artifactId>spring-boot-starter-tomcat</artifactId>
>                 </exclusion>
>             </exclusions>
>         </dependency>
>         <dependency>
>             <groupId>org.springframework.boot</groupId>
>             <artifactId>spring-boot-starter-log4j</artifactId>
>             <version>1.2.7.RELEASE</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.camel</groupId>
>             <artifactId>camel-spring-ws</artifactId>
>             <version>2.16.0</version>
>             <type>jar</type>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.camel</groupId>
>             <artifactId>camel-test-spring</artifactId>
>             <version>2.16.0</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.camel</groupId>
>             <artifactId>camel-core</artifactId>
>             <version>2.16.0</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.camel</groupId>
>             <artifactId>camel-spring-boot</artifactId>
>             <version>2.16.0</version>
>         </dependency>
>         <dependency>
>             <groupId>javax.servlet</groupId>
>             <artifactId>javax.servlet-api</artifactId>
>             <version>3.1.0</version>
>             <scope>provided</scope>
>         </dependency>
>         <dependency>
>             <groupId>org.springframework.boot</groupId>
>             <artifactId>spring-boot-autoconfigure</artifactId>
>             <version>1.2.7.RELEASE</version>
>             <type>jar</type>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.camel</groupId>
>             <artifactId>camel-spring-javaconfig</artifactId>
>             <version>2.16.0</version>
>         </dependency>
>     </dependencies>
>
>
> I would be so grateful for help or a hint.
>
> Thanks in advanced.
>
>
>
>
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Spring-Boot-WS-After-receiving-request-camel-throws-NullPointerException-tp5772930.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2nd edition:
https://www.manning.com/books/camel-in-action-second-edition

Reply via email to