geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Problem JMS (NameNotFoundException)
Date Mon, 24 Sep 2007 19:46:40 GMT

On Sep 24, 2007, at 1:01 PM, David Carew wrote:

> Do you have references to the ConnectionFactory and Queue in your  
> web.xml ?  http://cwiki.apache.org/GMOxDOC20/jms-and-mdb-sample- 
> application.html has an example. Although the example uses  
> annotations the setup would be the same to be able to access the  
> JMS resources via JNDI.
>
> On 9/24/07, Jochen Zink <jochenlist@web.de> wrote:
> Hello,
>
> I'm using geronimo 2.0.1 and I try to send a simple textMessage to  
> a JMSQueue.
>
> First, I have configured a JMS-Ressource for ActiveMQ with the  
> geronimo console. You can see the full DeploymentPlan at the end of  
> this email.
>
> The Connectionfactory becomes the name: MyFactory
> The Destination becomes the name: MyQueue
>
>
> Now, I have a simple WebApplication, with a simple Servlet, which  
> trys to send a message to MyQueue
>
> Here are the relevant code:
> InitialContext jndiContext = getInitialContext();
> QueueConnectionFactory factory = (QueueConnectionFactory)  
> jndiContext.lookup("java:comp/env/MyFactory");
> Queue queue = (Queue) jndiContext.lookup("java:comp/env/MyQueue");
> QueueConnection connection = factory.createQueueConnection();
> QueueSession session = connection.createQueueSession(true,  
> Session.AUTO_ACKNOWLEDGE);
> MessageProducer producer = session.createProducer(queue);
> TextMessage txtMsg = session.createTextMessage();
> txtMsg.setText(vorgangPk);
> producer.send( txtMsg );
> connection.close();
>
>
> On line 2 jndiContext.lookup("java:comp/env/MyFactory"); a  
> NameNotFoundException is thrown (MyFactory not found).
>
> I'm not sure what I do wrong. If anyone has an idea, it would be  
> great.
>
> Thanks a lot
>
> Regards
> Jochen
>
> Here is the getInitialContext() Method
> Properties env = new Properties();
> env.put (Context.INITIAL_CONTEXT_FACTORY,  
> "org.apache.activemq.jndi.ActiveMQInitialContextFactory");
> env.put(Context.PROVIDER_URL, "tcp://localhost:61616");
> return new InitialContext(env);

I think this is the problem.  This gives you the proprietary non- 
javaee activemq jndi context that IIRC you have to configure with a  
properties file somewhere.  To use the javaee naming stuff you set up  
in your plans I think you want just new InitialContext().

The plans look ok to me, the important part is that the amq connector  
is listed in the dependencies of the web app: this tells geronimo to  
try to hook up the resource-ref etc to it.  The names java:comp/env/ 
MyQueue etc. look correct to me.

thanks
david jencks

>
>
> geronimo-web.xml
> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1"  
> xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1 ">
>   <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/ 
> deployment-1.1">
>     <dep:moduleId>
>       <dep:groupId> com.accumio.ae</dep:groupId>
>       <dep:artifactId>EngineServlet</dep:artifactId>
>       <dep:version>1.0</dep:version>
>       <dep:type>car</dep:type>
>     </dep:moduleId>
>     <dep:dependencies>
>
>         <dependency>
>             <groupId>console.jms</groupId>
>                 <artifactId>pushae</artifactId>
>                 <version> 1.0</version>
>                 <type>rar</type>
>         </dependency>
>
>     </dep:dependencies>
>
>     <dep:hidden-classes/>
>     <dep:non-overridable-classes/>
>   </dep:environment>
>
>   <context-root>/engineServlet</context-root>
> </web-app>
>
>
>
> the Deployment Plan for the JMS-Ressource:
> <connector xmlns=" http://geronimo.apache.org/xml/ns/j2ee/ 
> connector-1.2">
>     <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/ 
> deployment-1.2 ">
>         <dep:moduleId>
>             <dep:groupId>console.jms</dep:groupId>
>             <dep:artifactId>pushae</dep:artifactId>
>             <dep:version>1.0</dep:version>
>             <dep:type>rar</dep:type>
>         </dep:moduleId>
>         <dep:dependencies>
>             <dep:dependency>
>                 <dep:groupId>org.apache.geronimo.configs </ 
> dep:groupId>
>                 <dep:artifactId>activemq-broker</dep:artifactId>
>                 <dep:type>car</dep:type>
>             </dep:dependency>
>         </dep:dependencies>
>     </dep:environment>
>     <resourceadapter>
>         <resourceadapter-instance>
>             <resourceadapter-name>pushae</resourceadapter-name>
>             <config-property-setting name="Clientid">pushaeClient</ 
> config-property-setting>
>             <nam:workmanager xmlns:nam="http://geronimo.apache.org/ 
> xml/ns/naming-1.2">
>                 <nam:gbean-link>DefaultWorkManager</nam:gbean-link>
>             </nam:workmanager>
>         </resourceadapter-instance>
>         <outbound-resourceadapter>
>             <connection-definition>
>                 <connectionfactory-interface>  
> javax.jms.QueueConnectionFactory</connectionfactory-interface>
>                 <connectiondefinition-instance>
>                     <name>MyFactory</name>
>                     <connectionmanager>
>                         <xa-transaction>
>                             <transaction-caching/>
>                         </xa-transaction>
>                         <single-pool>
>                             <match-one/>
>                         </single-pool>
>                     </connectionmanager>
>                 </connectiondefinition-instance>
>             </connection-definition>
>         </outbound-resourceadapter>
>     </resourceadapter>
>     <adminobject>
>         <adminobject-interface>javax.jms.Queue</adminobject-interface>
>         <adminobject- 
> class>org.apache.activemq.command.ActiveMQQueue </adminobject-class>
>         <adminobject-instance>
>             <message-destination-name>MyQueue</message-destination- 
> name>
>             <config-property-setting name="PhysicalName">MyQueue2</ 
> config-property-setting>
>         </adminobject-instance>
>     </adminobject>
>     <adminobject>
>         <adminobject-interface>javax.jms.Topic</adminobject-interface>
>         <adminobject- 
> class>org.apache.activemq.command.ActiveMQTopic </adminobject-class>
>     </adminobject>
> </connector>
>
>
> Thanks a lot
> _____________________________________________________________________
> Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> http://smartsurfer.web.de/?mc=100071&distributionid=000000000066
>
>


Mime
View raw message