On 5/18/07, MarkusJ <[EMAIL PROTECTED]> wrote:
James.Strachan wrote: > > On 5/18/07, JohnF <[EMAIL PROTECTED]> wrote: >> >> Hello, >> >> I tried to use JNDI and the lookup() methode to get a topic for a client. >> >> properties = new Hashtable<String, String>(); >> >> properties.put(Context.INITIAL_CONTEXT_FACTORY, >> "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); >> >> Context context = new InitialContext(properties); >> >> ConnectionFactory connectionFactory = >> (ConnectionFactory)context.lookup("ConnectionFactory"); >> >> properties.put(Context.PROVIDER_URL, >> "tcp://localhost:61616"); >> >> Topic destination = (Topic)context.lookup("NAME_OF_TOPIC"); >> >> It failed and I got the NameNotFoundException. If I added the following >> line, it does work: >> >> properties.put("topic.NAME_OF_TOPIC", "NAME_OF_TOPIC"); >> >> I do not want to use a property file that is stored in the classpath. How >> do >> I have to configure a topic or a queue to avoid defining the Name of the >> destination for JNDI in the code of the client? > > You could load the properties file from some remote resource (file > server, web server, database). Or you could use some other JNDI > provider if you want (Sun's or one from your J2EE container) - which > amounts to the same thing but adds tons of work usually. > > Or use spring and put the creation of the destinations in your > spring.xml. Or just ditch JNDI/spring entirely and use the JMS API to > create the topics you want? > > -- > James > ------- > http://macstrac.blogspot.com/ > > Hello James, thank you for answer. My hope was, that I can use the topic element of the configuration file. I have found the description of the topic element in the reference page . The topic element has got one property called 'properties'. The description says: 'Get the properties from this instance for storing in JNDI.'. Is ist not possible to define the JNDI name of the topic at this place? How do I have to do it(the format of the entry)?
No. You put object into JNDI; so you can create any JNDI provider and add ActiveMQTopic and ActiveMQQueue objects to JNDI - in any way you like. Though a Topic doesn't have a magic way to auto-discover a JNDI provider and add itself automatically. I don't really follow your reasoning; there's already a properties file (the jndi.properties file) which can create destinations & register them in JNDI - why don't you wanna use it? -- James ------- http://macstrac.blogspot.com/