Sorry, it's not the NPE inside camel or geronimo. I mean none of the @EndpointInject(uri="jms:queue:SendReceiveQueue") ProducerTemplate producer;
@EndpointInject(uri="jms:SendReceiveQueue") ProducerTemplate producer2; @EndpointInject(uri="activemq:SendReceiveQueue") ProducerTemplate producer3; @EndpointInject(uri="activemq:queue:SendReceiveQueue") ProducerTemplate producer4; has been injected, so all producer* are null, when I just try to use them from Servet / Restlet in the manner @Path("/") public class SimpleResource { @GET public Response test() { new SimpleProducer().produceMessage(); return Response.ok("<div>test</div>", MediaType.TEXT_HTML).build(); } } To avoid NPE i just place if(producer!=null) {producer.sendBody("<message>test</message>");log.info("ok1"); }; and you can see from the log that no logging are fired here. It's also strange to me that Listing endpoints in the RouteBuilder doesn't produce any endpoint log.info("Listing components.."); for (String e : getContext().getComponentNames()) log.info(e); log.info("Listing endpoints..."); for (Endpoint e : getContext().getEndpoints()) log.info(e); INFO RMI TCP Connection(40)-169.254.167.193 com.iba.trainunion.trainlist.camel.RoutingConfiguration - Listing components.. INFO RMI TCP Connection(40)-169.254.167.193 com.iba.trainunion.trainlist.camel.RoutingConfiguration - spring-event INFO RMI TCP Connection(40)-169.254.167.193 com.iba.trainunion.trainlist.camel.RoutingConfiguration - Listing endpoints... I have expected that either jms or activemq would be listed (as endpoints / component). But only spring-event are shown. I suspect that I something miss in the configuration, but applicationContext.xml is processed and nothing more precise I have found at camel site to find out for geronimo - camel integration for this case. On Wed, May 6, 2009 at 6:08 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > Hi > > Can you show the NPE stacktrace? > And which producer is it that causes the NPE? > > > On Tue, May 5, 2009 at 7:15 PM, Xasima Xirohata <xas...@gmail.com> wrote: >> Hi. I'm using geronimo-jetty-2.1.4 running with jdk1.6. This geronimo >> has an activemq (4.1.2) running on 61616. I have created queue >> 'SendReceiveQueue' using geronimo and it works. Generally, I would >> like to add camel as mediation engine which will connect Http, Cometd, >> Restlet , and geronimo JMS, >> >> I have started to just create simple consumer / producer binded to >> the existed JMS queue. Unfortunately, I have got NPE when inject >> producer. >> >> It's is interesting that I can inject ConnectionFactory + Queue in >> standard Servlet using EJB. So the problem in >> >> public class CustomServlet extends org.restlet.ext.servlet.ServerServlet{ >> >> @Resource(name="DefaultActiveMQConnectionFactory") >> private ConnectionFactory connectionFactory; >> >> @Resource(name="SendReceiveQueue") >> private Queue queue; >> >> protected Log log = LogFactory.getLog(this.getClass()); >> �...@override >> public void init() throws ServletException { >> try { >> if(queue!=null && connectionFactory!=null) >> log.info("ok"); >> >> >> Here is the code >> ------------------------------------------ SimpleProducer >> ---------------------------------------- >> public class SimpleProducer { >> >> �...@endpointinject(uri="jms:queue:SendReceiveQueue") >> ProducerTemplate producer; >> >> �...@endpointinject(uri="jms:SendReceiveQueue") >> ProducerTemplate producer2; >> >> �...@endpointinject(uri="activemq:SendReceiveQueue") >> ProducerTemplate producer3; >> >> �...@endpointinject(uri="activemq:queue:SendReceiveQueue") >> ProducerTemplate producer4; >> >> Log log = LogFactory.getLog(this.getClass()); >> >> public void produceMessage() { >> // Everything is NULL >> if(producer!=null) >> {producer.sendBody("<message>test</message>");log.info("ok1"); }; >> if(producer2!=null){ producer2.sendBody("<message>test</message>"); >> log.info("ok2");}; >> if(producer3!=null){ producer3.sendBody("<message>test</message>"); >> log.info("ok3");}; >> if(producer4!=null){ producer4.sendBody("<message>test</message>"); >> log.info("ok4");}; >> } >> } >> >> ------------------------------------ Routing >> ---------------------------------------- >> public class RoutingConfiguration extends RouteBuilder { >> protected static Log log = >> LogFactory.getLog(RoutingConfiguration.class); >> >> �...@override >> public void configure() throws Exception { >> log.info("Listing components.."); >> >> for (String e : getContext().getComponentNames()) >> log.info(e); >> >> log.info("Listing endpoints..."); >> for (Endpoint e : getContext().getEndpoints()) >> log.info(e); >> } >> } >> ------------------------------------------ WEB-INF >> /applicationContext.xml ---------------------------- >> <?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:camel="http://camel.apache.org/schema/spring" >> xmlns:context="http://www.springframework.org/schema/context" >> xmlns:broker="http://activemq.apache.org/schema/core" >> xsi:schemaLocation="http://www.springframework.org/schema/beans >> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd >> http://www.springframework.org/schema/context >> http://www.springframework.org/schema/context/spring-context-2.5.xsd >> http://camel.apache.org/schema/spring >> http://camel.apache.org/schema/spring/camel-spring.xsd >> http://activemq.apache.org/schema/core >> http://activemq.apache.org/schema/core/activemq-core-5.2.0.xsd"> >> >> <!-- Spring IoC scan --> >> <context:component-scan >> base-package="com.iba.trainunion.trainlist.camel"/> >> >> <!-- Define camel --> >> <camel:camelContext id="camel"> >> <!-- will auto discover camel router in the specified package >> --> >> >> <camel:package>com.iba.trainunion.trainlist.camel</camel:package> >> <camel:jmxAgent id="agent" createConnector="true"/> >> </camel:camelContext> >> >> <bean id="jms" >> class="org.apache.activemq.camel.component.ActiveMQComponent"> >> <property name="brokerURL" value="tcp://localhost:61616"/> >> </bean> >> >> <bean id="activemq" >> class="org.apache.camel.component.jms.JmsComponent"> >> <property name="connectionFactory"> >> <bean class="org.apache.activemq.ActiveMQConnectionFactory"> >> <property name="brokerURL" >> value="tcp://localhost:61616"/> >> </bean> >> </property> >> </bean> >> </beans> >> >> --------------------------------------- WEB-INF / web.xml >> ------------------------------------ >> >> <?xml version="1.0" encoding="UTF-8"?> >> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xmlns="http://java.sun.com/xml/ns/javaee" >> xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee >> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" >> version="2.5"> >> >> <!-- ============ CAMEL ================= --> >> <!-- Start spring autowiring configured in applicationContext.xml --> >> <listener> >> >> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> >> </listener> >> <!-- ============ / CAMEL ================= --> >> >> ....... >> >> >> --------------------------------------- WEB-INF / geronimo-web.xml >> ------------------------------------ >> I have deployed spring-tx, spring-aop, spring into geronimo, since >> there are a lack of them in standard repository. >> >> >> <?xml version="1.0" encoding="UTF-8" standalone="no"?> >> <web:web-app >> xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" >> xmlns:client="http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0" >> xmlns:conn="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2" >> xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2" >> xmlns:ejb="http://openejb.apache.org/xml/ns/openejb-jar-2.2" >> xmlns:name="http://geronimo.apache.org/xml/ns/naming-1.2" >> xmlns:pers="http://java.sun.com/xml/ns/persistence" >> xmlns:pkgen="http://openejb.apache.org/xml/ns/pkgen-2.1" >> xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" >> xmlns:web="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"> >> <dep:environment> >> <dep:moduleId> >> <dep:groupId>com.iba.trainunion</dep:groupId> >> <dep:artifactId>trainlist-web</dep:artifactId> >> <dep:version>1.0</dep:version> >> <dep:type>car</dep:type> >> </dep:moduleId> >> <dep:dependencies> >> <dep:dependency> >> <dep:groupId>org.springframework</dep:groupId> >> <dep:artifactId>spring-beans</dep:artifactId> >> <dep:version>2.5.6</dep:version> >> <dep:type>jar</dep:type> >> </dep:dependency> >> <dep:dependency> >> <dep:groupId>org.springframework</dep:groupId> >> <dep:artifactId>spring-context</dep:artifactId> >> <dep:version>2.5.6</dep:version> >> <dep:type>jar</dep:type> >> </dep:dependency> >> <dep:dependency> >> <dep:groupId>org.springframework</dep:groupId> >> <dep:artifactId>spring-core</dep:artifactId> >> <dep:version>2.5.6</dep:version> >> <dep:type>jar</dep:type> >> </dep:dependency> >> <dep:dependency> >> <dep:groupId>org.springframework</dep:groupId> >> <dep:artifactId>spring-web</dep:artifactId> >> <dep:version>2.5.6</dep:version> >> <dep:type>jar</dep:type> >> </dep:dependency> >> <dep:dependency> >> <dep:groupId>org.springframework</dep:groupId> >> <dep:artifactId>spring-aop</dep:artifactId> >> <dep:version>2.5.6</dep:version> >> <dep:type>jar</dep:type> >> </dep:dependency> >> <dep:dependency> >> <dep:groupId>org.springframework</dep:groupId> >> <dep:artifactId>spring-tx</dep:artifactId> >> <dep:version>2.5.6</dep:version> >> <dep:type>jar</dep:type> >> </dep:dependency> >> <dep:dependency> >> <dep:groupId>org.springframework</dep:groupId> >> <dep:artifactId>spring</dep:artifactId> >> <dep:version>2.5.6</dep:version> >> <dep:type>jar</dep:type> >> </dep:dependency> >> <dep:dependency> >> <dep:groupId>org.apache.geronimo.configs</dep:groupId> >> <dep:artifactId>activemq-ra</dep:artifactId> >> <dep:version>2.1.3</dep:version> >> <dep:type>car</dep:type> >> </dep:dependency> >> </dep:dependencies> >> <dep:hidden-classes> >> <dep:filter>org.springframework.</dep:filter> >> <dep:filter>META-INF/spring</dep:filter> >> </dep:hidden-classes> >> </dep:environment> >> <web:context-root>/trainunion/realtime</web:context-root> >> </web:web-app> >> >> ----------------------------------------------------- Log when deploy >> ------------------------------------------- >> Geronimo Application Server started >> INFO RMI TCP Connection(39)-169.254.167.193 >> org.apache.geronimo.deployment.DeploymentContext - The Strict Manifest >> Classpath processing mode is in effect. >> This option can be altered by specifying >> -DXorg.apache.geronimo.deployment.LenientMFCP=true|false >> Specify ="true" for more lenient processing such as ignoring missing >> jars and references that are not spec compliant. >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.springframework.web.context.ContextLoader - Root >> WebApplicationContext: initialization started >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.springframework.web.context.support.XmlWebApplicationContext - >> Refreshing >> org.springframework.web.context.support.xmlwebapplicationcont...@143363: >> display name [Root WebApplicationContext]; startup date [Tue May 05 >> 20:13:11 EEST 2009]; root of context hierarchy >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.springframework.beans.factory.xml.XmlBeanDefinitionReader - >> Loading XML bean definitions from ServletContext resource >> [/WEB-INF/applicationContext.xml] >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.springframework.web.context.support.XmlWebApplicationContext - >> Bean factory for application context >> [org.springframework.web.context.support.xmlwebapplicationcont...@143363]: >> org.springframework.beans.factory.support.defaultlistablebeanfact...@bc80fa >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.springframework.web.context.support.XmlWebApplicationContext - >> Bean 'agent' is not eligible for getting processed by all >> BeanPostProcessors (for example: not eligible for auto-proxying) >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.apache.camel.impl.DefaultCamelContext - JMX enabled. Using >> InstrumentationLifecycleStrategy. >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.springframework.web.context.support.XmlWebApplicationContext - >> Bean 'com.iba.trainunion.trainlist.camel.RoutingConfiguration' is not >> eligible for getting processed by all BeanPostProcessors (for example: >> not eligible for auto-proxying) >> INFO RMI TCP Connection(40)-169.254.167.193 >> com.iba.trainunion.trainlist.camel.RoutingConfiguration - Listing >> components.. >> INFO RMI TCP Connection(40)-169.254.167.193 >> com.iba.trainunion.trainlist.camel.RoutingConfiguration - spring-event >> INFO RMI TCP Connection(40)-169.254.167.193 >> com.iba.trainunion.trainlist.camel.RoutingConfiguration - Listing >> endpoints... >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.springframework.web.context.support.XmlWebApplicationContext - >> Bean 'camel' is not eligible for getting processed by all >> BeanPostProcessors (for example: not eligible for auto-proxying) >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.springframework.web.context.support.XmlWebApplicationContext - >> Bean 'camel' is not eligible for getting processed by all >> BeanPostProcessors (for example: not eligible for auto-proxying) >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.springframework.beans.factory.support.DefaultListableBeanFactory - >> Pre-instantiating singletons in >> org.springframework.beans.factory.support.defaultlistablebeanfact...@bc80fa: >> defining beans >> [org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,agent,camel:beanPostProcessor,camel,jms,activemq]; >> root of factory hierarchy >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.apache.camel.impl.DefaultCamelContext - Apache Camel 2.0-M1 >> (CamelContext:camel) is starting >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.apache.camel.management.DefaultInstrumentationAgent - JMX >> Connector thread started and listening at: >> service:jmx:rmi:///jndi/rmi://perez_a:1099/jmxrmi/camel >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.apache.camel.impl.DefaultCamelContext - Apache Camel 2.0-M1 >> (CamelContext:camel) started >> INFO RMI TCP Connection(40)-169.254.167.193 >> org.springframework.web.context.ContextLoader - Root >> WebApplicationContext: initialization completed in 2026 ms >> >> >> >> Best regards, >> ~ Xasima Xirohata ~ >> > > > > -- > Claus Ibsen > Apache Camel Committer > > Open Source Integration: http://fusesource.com > Blog: http://davsclaus.blogspot.com/ > Twitter: http://twitter.com/davsclaus > Apache Camel Reference Card: > http://refcardz.dzone.com/refcardz/enterprise-integration > Interview with me: > http://architects.dzone.com/articles/interview-claus-ibsen-about?mz=7893-progress > -- Best regards, ~ Xasima Xirohata ~