geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <djen...@gluecode.com>
Subject Re: Creating JMS Topics + JNDI
Date Sat, 30 Jul 2005 04:28:15 GMT
If you look in the source tree under modules/assembly/src/plan you can  
find the default jms plan system-jms-plan.xml for comparison.

Your plan is missing the required work-manager element.

How old is your geronimo version? I think a recent change should have  
made the exception appear on the console.

david jencks

On Jul 29, 2005, at 8:36 PM, Sami Dalouche wrote:

> Hi,
>
> thanks for your answer :
>
>> What is the output from this command?
>
> There is no output to the command, but I found something in the log :
>
> Caused by: org.apache.xmlbeans.XmlException: Invalid deployment  
> descriptor:
> [d:\projects\weather\src\resources\geronimo-activemq.xml:0: error:  
> Expected
> element(s) in element
> resourceadapter-instance@http://geronimo.apache.org/xml/ns/j2ee/ 
> connector]
> Descriptor: <xml-fragment version="1.5"
> configId="weather/jms/TopicsConfiguration"
> parentId="org/apache/geronimo/System"
> xmlns:con="http://geronimo.apache.org/xml/ns/j2ee/connector">
>   <con:resourceadapter>
>
> I guess there is a problem in my file, but I can't seem to find a  
> working
> template. can anyone send one to me please ?
>
> My file is :
> <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>
>     </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>
>
>
>> Is this a standalone non-j2ee client?
> This is a standalone client, so ok, I'll try to use activemq.
> BTW, does the previous deployment descriptor, when it works,  
> automatically
> expose the topics through JNDI ?
>
> and concerning the IBM article, it doesn't seem to use JNDI, just a  
> plain
> connection to the JMS provider..
>
> Thanks a lot,
> Sami Dalouche
>
> Selon David Jencks <djencks@gluecode.com>:
>
>> 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.
>


Mime
View raw message