camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Xasima Xirohata <xas...@gmail.com>
Subject problem to inject producer for JMS queue in geronimo
Date Tue, 05 May 2009 17:15:27 GMT
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.XmlWebApplicationContext@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.XmlWebApplicationContext@143363]:
org.springframework.beans.factory.support.DefaultListableBeanFactory@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.DefaultListableBeanFactory@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 ~

Mime
View raw message