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