You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2009/05/26 19:43:50 UTC

[jira] Commented: (CAMEL-1636) camel-geronimo-2.1.4 integration tutorial

    [ https://issues.apache.org/activemq/browse/CAMEL-1636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=51913#action_51913 ] 

Claus Ibsen commented on CAMEL-1636:
------------------------------------

You need a camelContext in your spring XML file.

This must be included to let Spring create a CamelContext and allow Camel to do all the needed bean post processors so it can do the @EndpointInject and whatnot.

See more here:
http://camel.apache.org/spring.html

Basically you need something like:

{code:xml}
<camel:camelContext id="camel5">
</camel:camelContext>
{code}

in the applicationContext.xml file.

> camel-geronimo-2.1.4 integration tutorial
> -----------------------------------------
>
>                 Key: CAMEL-1636
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1636
>             Project: Apache Camel
>          Issue Type: Improvement
>          Components: bean-integration
>    Affects Versions: 2.0-M1
>         Environment: geronimo-jetty6-javaee5-2.1.4, java 6
>            Reporter: alexander j. perez tchernov
>         Attachments: CAMEL_GeronimoTest-WEB.zip
>
>   Original Estimate: 3 hours
>  Remaining Estimate: 3 hours
>
> I think that we need an tutorial / example how to use camel with JMS queue created in geronimo-jetty-2.1.4 . I have got  NPE when try to use camel producer in simple servlet
> I have created 
> --------- Simple Producer --- 
> public class SimpleProducer {
>       @EndpointInject(uri="activemq:queue:SendReceiveQueue")
>         ProducerTemplate producer;
> 	public  void produceMessage() { producer.sendBody("<message>test</message>"); }
> }
> --------- WEB-INF/applicationContext.xml--- 
>     <context:component-scan base-package="org.camel.test.conf"/>
>     <context:annotation-config />
>      <bean id="producer" class="org.camel.test.conf.SimpleProducer"/>
>      <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>
> -------- UserServlet -------------
> public class UserServlet  extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet{
>         @Resource(name="jms/TestConnectionFactory")
> 	 private ConnectionFactory connectionFactory;
> 	 @Resource(name="jms/TestQueue")
> 	 private Queue queue;
>         protected void    doGet (...) { 
>                      //use EJB 3.0 injected resources - works fine
>                     producer.send(session.createMessage());	
>                     // NPE            
> 	            new SimpleProducer().produceMessage();
>         }
> }
> -------- NPE -------------
> Geronimo Application Server started
> INFO RMI TCP Connection(7)-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.
> ERROR DefaultThreadPool 195 org.mortbay.log - /camel/UserServlet
> java.lang.NullPointerException
> 	at org.camel.test.conf.SimpleProducer.produceMessage(SimpleProducer.java:30)
> 	at webjms.UserServlet.doGet(UserServlet.java:68)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> 	at org.apache.geronimo.jetty6.InternalJettyServletHolder.handle(InternalJettyServletHolder.java:65)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> 	at org.apache.geronimo.jetty6.handler.TwistyWebAppContext.access$101(TwistyWebAppContext.java:40)
> 	at org.apache.geronimo.jetty6.handler.TwistyWebAppContext$TwistyHandler.handle(TwistyWebAppContext.java:65)
> 	at org.apache.geronimo.jetty6.handler.ThreadClassloaderHandler.handle(ThreadClassloaderHandler.java:46)
> 	at org.apache.geronimo.jetty6.handler.InstanceContextHandler.handle(InstanceContextHandler.java:58)
> 	at org.apache.geronimo.jetty6.handler.UserTransactionHandler.handle(UserTransactionHandler.java:48)
> 	at org.apache.geronimo.jetty6.handler.ComponentContextHandler.handle(ComponentContextHandler.java:47)
> 	at org.apache.geronimo.jetty6.handler.TwistyWebAppContext.handle(TwistyWebAppContext.java:59)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> 	at org.mortbay.jetty.Server.handle(Server.java:324)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
> 	at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:214)
> 	at org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:344)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> ----------- WEB-INF / lib ----------
> activemq-camel-5.2.0
> activemq-web-5.2.0
> apache-camel-2.0-M1
> camel-core-2.0-M1
> camel-jms-2.0-M1
> camel-spring-2.0-M1
> camel-spring-integration-2.0-M1
> ----------- ${geronimo-home} / repository / org /springframework / ----------
> spring
> spring-aop
> spring-beans
> spring-context
> spring-core
> sprinx-txn
> spring-web
> ----------- geronimo-web.xml----------
> <?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>org.apache.camel</dep:groupId>
>             <dep:artifactId>geronimo-test</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.4</dep:version>
>                 <dep:type>car</dep:type>
>            </dep:dependency>               
>         </dep:dependencies>
>     </dep:environment>
>     <web:context-root>/camel</web:context-root>
>     <name:resource-ref>
>     	<name:ref-name>jms/TestConnectionFactory</name:ref-name>
>     	<name:pattern>
>     	    <name:groupId>org.apache.geronimo.configs</name:groupId>
>             <name:artifactId>activemq-ra</name:artifactId>
>             <name:version>2.1.4</name:version>
>             <name:name>DefaultActiveMQConnectionFactory</name:name>
>     	</name:pattern>
>     </name:resource-ref>
>     <name:resource-env-ref>
>     	<name:ref-name>jms/TestQueue</name:ref-name>
>         <name:pattern>
>           <name:groupId>org.apache.geronimo.configs</name:groupId>
>             <name:artifactId>activemq-ra</name:artifactId>
>             <name:version>2.1.4</name:version>            
>             <name:name>SendReceiveQueue</name:name>
>         </name:pattern>
>     </name:resource-env-ref>
> </web:web-app>
> I'll try to upload the attachment with overall project but reduced web-inf/lib

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.