Hi;
I am trying to look up a queue from a stateless session bean, and I get
javax.naming.NameNotFoundException: jms/asynchQueue not found in
Generator.
The GeneratorBean class is attached, and the xml files are printed
below.
Thanks,
Cathy
It is doing the lookup in this method:
private void startJMS() throws NamingException, JMSException {
ctx = new InitialContext();
Object obj =
ctx.lookup("java:comp/env/jms/javax.jms.QueueConnectionFactory");
QueueConnectionFactory factory = (QueueConnectionFactory)
PortableRemoteObject.narrow(obj, QueueConnectionFactory.class);
Object obj2 = ctx.lookup("java:comp/env/jms/asynchQueue");
queue = (Queue)PortableRemoteObject.narrow(obj2, Queue.class);
conn = factory.createQueueConnection();
conn.start();
session = conn.createQueueSession(false,
QueueSession.AUTO_ACKNOWLEDGE);
sender = session.createSender(queue);
}
Here are the jms.xml file and ejb-jar.xml files I am using:
<?xml version="1.0"?>
<!DOCTYPE jms-server PUBLIC "Orion JMS server"
"http://www.orionserver.com/dtds/jms-server.dtd">
<jms-server port="9127">
<!-- Queue bindings, these queues will be bound to their respective
JNDI path for later retrieval -->
<queue-connection-factory
location="jms/javax.jms.QueueConnectionFactory" port="9127">
</queue-connection-factory>
<queue name="Demo Queue" location="jms/demoQueue"/>
<queue name="asynchQueue" location="jms/asynchQueue"/>
<!-- Topic bindings, these topic will be bound to their respective JNDI
path for
later retrieval -->
<topic name="Demo Topic" location="jms/demoTopic"/> <!-- path to the
log-file where JMS-events/errors are stored -->
<log>
<file path="../log/jms.log" />
</log>
</jms-server>
<ejb-jar>
<description>This is a prototype to test asynchronous messaging using
the Generator and Delegator classes.
</description>
<enterprise-beans>
<session>
<display-name>Generator</display-name>
<ejb-name>com.hitachi.hitel.genesis.em.asynchronous.Generator</ejb-name>
<home>com.hitachi.hitel.genesis.em.asynchronous.GeneratorHome</home>
<remote>com.hitachi.hitel.genesis.em.asynchronous.Generator</remote>
<ejb-class>com.hitachi.hitel.genesis.em.asynchronous.GeneratorBean</ejb-class>
<session-type>Stateless</session-type>
<resource-ref>
<res-ref-name>jms/javax.jms.QueueConnectionFactory</res-ref-name>
<res-type>javax.jms.QueueConnectionFactory</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-env-ref>
<resource-env-ref-name>jms/asynchQueue</resource-env-ref-name>
<resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
</resource-env-ref>
</session>
<session>
<display-name>TestController</display-name>
<ejb-name>com.hitachi.hitel.genesis.em.asynchronous.TestController</ejb-name>
<home>com.hitachi.hitel.genesis.em.asynchronous.TestControllerHome</home>
<remote>com.hitachi.hitel.genesis.em.asynchronous.TestController</remote>
<ejb-class>com.hitachi.hitel.genesis.em.asynchronous.TestControllerBean</ejb-class>
<session-type>Stateful</session-type>
<ejb-ref>
<ejb-ref-name>Generator</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.hitachi.hitel.genesis.em.asynchronous.GeneratorHome</home>
<remote>com.hitachi.hitel.genesis.em.asynchronous.Generator</remote>
</ejb-ref>
</session>
<session>
<display-name>TestReceiver</display-name>
<ejb-name>com.hitachi.hitel.genesis.em.asynchronous.TestReceiver</ejb-name>
<home>com.hitachi.hitel.genesis.em.asynchronous.TestReceiverHome</home>
<remote>com.hitachi.hitel.genesis.em.asynchronous.TestReceiver</remote>
<ejb-class>com.hitachi.hitel.genesis.em.asynchronous.TestReceiverBean</ejb-class>
<session-type>Stateless</session-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<security-role>
<description>Users</description>
<role-name>users</role-name>
</security-role>
<method-permission>
<description>Not restricted</description>
<role-name>users</role-name>
<method>
<ejb-name>com.hitachi.hitel.genesis.em.asynchronous.Generator</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<method-permission>
<description>Not restricted</description>
<role-name>users</role-name>
<method>
<ejb-name>com.hitachi.hitel.genesis.em.asynchronous.TestController</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<method-permission>
<description>Not restricted</description>
<role-name>users</role-name>
<method>
<ejb-name>com.hitachi.hitel.genesis.em.asynchronous.TestReceiver</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
</assembly-descriptor>
</ejb-jar>
GeneratorBean.java