logo       

Re: Creating JMS Topics + JNDI: msg#00089

java.geronimo.user

Subject: Re: Creating JMS Topics + JNDI

OK, some news regarding my previous problem :

- I found a sample Ressource Adapter configuration file, so I can now deploy my
resource adapter without any exception. (under the name weather/Topics).
so, it should have deployes 2 topics :
jms/weatherTopic and jms/weatherRequestsTopic

- However, when I lookup "jms/weatherTopic" or "jms/weatherRequestsTopic"
through my Spring-acquired JNDI context, it says
javax.naming.NameNotFoundException: jms/weatherRequestsTopic


So I'm wondering :
- Is there a waay to check that some JNDI entry is actually present ?
- Does activeMq register the names under something else as what we specify ?
- Any idea regarding this problem ?

Thanks a lot

Here's the log
00:48:20,455 DEBUG [Configuration] ClassPath for weather/Topics resolved to
[file:/D:/geronimo/config-store/24/rar/activemq-ra-3.1-SNAPSHOT.jar,
file:/D:/geronimo/config-store/24/rar/activemq-core-3.1-SNAPSHOT.jar,
file:/D:/geronimo/config-store/24/rar/activemq-optional-3.1-SNAPSHOT.jar,
file:/D:/geronimo/config-store/24/rar/xstream-SNAPSHOT.jar,
file:/D:/geronimo/config-store/24/rar/jmdns-0.2.jar,
file:/D:/geronimo/config-store/24/rar/activecluster-1.1-SNAPSHOT.jar,
file:/D:/geronimo/config-store/24/rar/spring-1.1.jar,
file:/D:/geronimo/config-store/24/rar/activeio-1.0.jar,
file:/D:/geronimo/config-store/24/rar/derby-10.0.2.1.jar,
file:/D:/geronimo/config-store/24/rar/commons-logging-1.0.3.jar,
file:/D:/geronimo/config-store/24/rar/concurrent-1.3.4.jar]
00:48:20,549 INFO [Configuration] Started configuration weather/Topics
00:48:20,549 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.config:name="weather/Topics" State changed from starting to running
00:48:20,549 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:name=weather/Topics,J2EEServer=geronimo,J2EEApplication=null,j2eeType=ResourceAdapter,ResourceAdapterModule=weather/Topics
State changed from stopped to starting
00:48:20,549 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:name=weather/Topics,J2EEServer=geronimo,J2EEApplication=null,j2eeType=ResourceAdapter,ResourceAdapterModule=weather/Topics
State changed from starting to running
00:48:20,549 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:name=weather/Topics,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAResource,ResourceAdapter=weather/Topics
State changed from stopped to starting
00:48:20,549 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:name=weather/Topics,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAResource,ResourceAdapter=weather/Topics
State changed from starting to running
00:48:20,549 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=jms/weatherTopic,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAAdminObject
State changed from stopped to starting
00:48:20,549 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=jms/weatherTopic,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAAdminObject
State changed from starting to running
00:48:20,549 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=ActiveMQ
RA,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAResourceAdapter State
changed from stopped to starting
00:48:20,564 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=ActiveMQ
RA,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAResourceAdapter State
changed from starting to running
00:48:20,564 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=ConnectionFactory,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAManagedConnectionFactory
State changed from stopped to starting
00:48:20,564 DEBUG [GBeanSingleReference] Waiting to start
geronimo.server:JCAResource=weather/Topics,name=ConnectionFactory,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAManagedConnectionFactory
because no targets are running for reference ConnectionManagerContainer matching
the patternspatterns
geronimo.server:J2EEApplication=null,J2EEServer=geronimo,JCAResource=weather/Topics,j2eeType=JCAConnectionManager,name=ConnectionFactory
00:48:20,564 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=jms/weatherRequestsTopic,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAAdminObject
State changed from stopped to starting
00:48:20,564 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=jms/weatherRequestsTopic,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAAdminObject
State changed from starting to running
00:48:20,564 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=ConnectionFactory,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAConnectionFactory
State changed from stopped to starting
00:48:20,564 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=ConnectionFactory,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAConnectionFactory
State changed from starting to running
00:48:20,564 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=ConnectionFactory,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAConnectionManager
State changed from stopped to starting
00:48:20,564 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=ConnectionFactory,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAConnectionManager
State changed from starting to running
00:48:20,564 DEBUG [ManagedConnectionFactoryWrapper] Registered
managedConnectionFactory with ResourceAdapter
[org.apache.geronimo.connector.ResourceAdapterWrapper$$EnhancerByCGLIB$$4d33a03a:
geronimo.server:JCAResource=weather/Topics,name=ActiveMQ
RA,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAResourceAdapter]
00:48:20,564 DEBUG [ManagedConnectionFactoryWrapper] Bound connection factory
into global 'ger:' context at jms/ConnectionFactory
00:48:20,564 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:JCAResource=weather/Topics,name=ConnectionFactory,J2EEServer=geronimo,J2EEApplication=null,j2eeType=JCAManagedConnectionFactory
State changed from starting to running
00:48:20,580 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:name=weather/Topics,J2EEServer=geronimo,J2EEApplication=null,j2eeType=ResourceAdapterModule
State changed from stopped to starting
00:48:20,580 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:name=weather/Topics,J2EEServer=geronimo,J2EEApplication=null,j2eeType=ResourceAdapterModule
State changed from starting to running

Here is my relevant spring config file

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop
key="java.naming.factory.initial">${jms.jndiContextFactory}</prop>
<prop
key="java.naming.provider.url">${jms.jndiProviderUrl}</prop>
</props>
</property>
</bean>

<!-- Internal JMS Queue Connection Factory -->
<bean id="internalJmsQueueConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="jndiTemplate"/>
</property>
<property name="jndiName">
<value>${jms.connectionFactoryName}</value>
</property>
</bean>

<bean id="weatherRequestTopic"
class="org.springframework.jndi.JndiObjectFactoryBean"
singleton="true">
<property name="jndiTemplate">
<ref bean="jndiTemplate"/>
</property>
<property name="jndiName">
<value>${jms.weatherRequestsTopic}</value>
</property>
</bean>


Selon David Jencks <djencks-FwHK5tIWHUxWk0Htik3J/w@xxxxxxxxxxxxxxxx>:

> comments inline
> On Jul 29, 2005, at 7:05 PM, Sami Dalouche wrote:
>
> >
> >
> > Hi,
> >
> > I'm currently trying to
> >
> > 1) Create some JMS Topics
> > 2) Expose a ConnectionFactory + the Topics through JNDI
> >
> > ->
> >
> > I'm using the following RA
> > <connector
> > xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector";
> > version="1.5"
> > configId="weather/jms/TopicsConfiguration"
> > parentId="org/apache/geronimo/System">
> >
> > <resourceadapter>
> > <!-- how to connect to the JMS Server -->
> > <resourceadapter-instance>
> > <resourceadapter-name>My JMS Resources</resourceadapter-name>
> > <config-property-setting
> > name="ServerUrl">tcp://localhost:61616</config-property-setting>
> > <config-property-setting
> > name="UserName">system</config-property-setting>
> > <config-property-setting
> > name="Password">manager</config-property-setting>
> > <workmanager-name>DefaultWorkManager</workmanager-name>
> > </resourceadapter-instance>
> > <!-- defines a ConnectionFactory -->
> > <outbound-resourceadapter>
> > <connection-definition>
> >
> > <connectionfactory-interface>javax.jms.ConnectionFactory</
> > connectionfactory-interface>
> > <connectiondefinition-instance>
> > <name>ConnectionFactory</name>
> >
> > <implemented-interface>javax.jms.QueueConnectionFactory</implemented-
> > interface>
> >
> > <implemented-interface>javax.jms.TopicConnectionFactory</implemented-
> > interface>
> > <connectionmanager>
> > <xa-transaction>
> > <transaction-caching />
> > </xa-transaction>
> > <single-pool>
> > <max-size>10</max-size>
> > <min-size>0</min-size>
> > <blocking-timeout-milliseconds>
> > 5000
> > </blocking-timeout-milliseconds>
> > <idle-timeout-minutes>
> > 0
> > </idle-timeout-minutes>
> > <match-one/>
> > </single-pool>
> > </connectionmanager>
> > <global-jndi-name>
> > jms/ConnectionFactory
> > </global-jndi-name>
> > </connectiondefinition-instance>
> > </connection-definition>
> > </outbound-resourceadapter>
> > </resourceadapter>
> > <!-- defines a Topic -->
> > <adminobject>
> > <adminobject-interface>
> > javax.jms.Topic
> > </adminobject-interface>
> > <adminobject-class>
> > org.codehaus.activemq.message.ActiveMQTopic
> > </adminobject-class>
> > <adminobject-instance>
> >
> > <message-destination-name>jms/weatherTopic</message-destination-name>
> > <config-property-setting
> > name="PhysicalName">jms/weatherTopic</config-property-setting>
> > </adminobject-instance>
> > </adminobject>
> > <adminobject>
> > <adminobject-interface>
> > javax.jms.Topic
> > </adminobject-interface>
> >
> > <adminobject-class>org.codehaus.activemq.message.ActiveMQTopic</
> > adminobject-class>
> > <adminobject-instance>
> >
> > <message-destination-name>jms/weatherRequestsTopic</message-
> > destination-name>
> > <config-property-setting
> > name="PhysicalName">jms/weatherRequestsTopic</config-property-setting>
> > </adminobject-instance>
> > </adminobject>
> > </connector>
> >
> > and deploy it using :
> > D:\geronimo>java -jar bin\deployer.jar deploy
> > d:\projects\weather\src\resources\
> > geronimo-activemq.xml
> > repository\activemq\rars\activemq-ra-3.1-SNAPSHOT.rar
> > Username: system
> > Password: manager
>
> What is the output from this command?
> >
> > Nothing appears in the Geronimo logs.
>
> If you have geronimo running when you run the command above, you should
> see something in geronimo.log. If you don't, you should see something
> in deployer.log.
>
> > I tried to brows Geronimo's JMX with MC4J,
> > and the only thing I could find was a DefaultActiveMQConnectionFactory
> > My factory + topics don't seem to appear through JMX.
>
> You might try the debug console. I haven't tried MC4J myself.
>
> >
> > I also wrote a client :
> > I'm using Spring to get a reference to the Factory and get
> > javax.naming.NameNotFoundException: /jms/weatherRequestsTopic not found
> > at org.openejb.client.JNDIContext.lookup(JNDIContext.java:257)
> > at javax.naming.InitialContext.lookup(Unknown Source)
> > at
> > org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:
> > 123)
> >
> > so, it looks like my topic is not exposed through JNDI ? Or even not
> > created ?
> >
> > I'm using the latest geronimo snapshot, and use the openejb 2.0
> > snapshot for my
> > client library (only this jar). Do I need something else ?
>
> Is this a standalone non-j2ee client? If so you will have to use
> instructions from activemq to use activemq. In particular, the openejb
> jndi implementation only exposes ejbs, not any other resources. If you
> have a j2ee app client, and you wish to use jms, you need to deploy a
> copy of the activemq adapter on the client. You can then use the j2ee
> java:comp/env context to find your stuff.
>
> Have you looked at the developerworks article?
>
> http://www-128.ibm.com/developerworks/opensource/library/os-ag-jmsbeans/
>
> I believe it has examples of both j2ee and non j2ee clients.
>
> thanks
> david jencks
>
> >
> > Thank you very much for your help,
> > Sami Dalouche
> >
> > ----------------------------------------------------------------
> > This message was sent using IMP, the Internet Messaging Program.
> >
>
>




----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise