You have two problems:
1. You need to have a jboss.jndi in your classpath somewhere, for jndi
to understand that it should be using jnp, eg:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming
2. You are using the wrong name for a topic connection factory. Do this
instead for example:
public class Main {
public static void main(String arg[]) {
try {
// Get access to JNDI
Context context = new InitialContext();
// Lookup the managed connection factory for a topic
TopicConnectionFactory topicFactory =
(TopicConnectionFactory)context.lookup("TopicConnectionFactory"); //This is
the real JNDI name
?
//Peter
On 7 Maj, Cecilie Aulesjord wrote:
> Hi! I really need assistance from You; can You help me understand how to set
> up connection factory in JBoss-2.2.1?:
>
> I'm trying to get a simple Message Bean to work on JBoss-2.2.1. JDK1.3 is
> used.
> My client fails when it tries to lookup the connection factory; What must I
> do to get the client to recieve a connection factory? Must the XML
> config-files be updated with connection factory parameters?
>
> ----------------------------------------------------------------------------
> -----
> The message bean is like the simple "HelloWorld MDB" in the JBoss
> documentation. The bean is OK deployed with this ejb-jar.xml:
>
> <?xml version="1.0"?>
> <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise
> JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
> <ejb-jar>
> <enterprise-beans>
> <message-driven>
> <ejb-name>MDB</ejb-name>
> <ejb-class>test.bean.MDB</ejb-class>
> <message-selector></message-selector>
> <transaction-type>Container</transaction-type>
> <message-driven-destination>
> <destination-type>javax.jms.Topic</destination-type>
> <subscription-durability>NonDurable</subscription-durability>
> </message-driven-destination>
> </message-driven>
> </enterprise-beans>
>
> <assembly-descriptor>
> <container-transaction>
> <method>
> <ejb-name>MDB</ejb-name>
> <method-name>onMessage</method-name>
> <method-params>
> <method-param>javax.jms.Message</method-param>
> </method-params>
> </method>
> <trans-attribute>Supports</trans-attribute>
> </container-transaction>
> </assembly-descriptor>
> </ejb-jar>
> ----------------------------------------------------------------------------
> -----
> The Message Bean is deployed with this jboss.xml:
>
> <?xml version="1.0" encoding="Cp1252"?>
> <jboss>
> <enterprise-beans>
>
> <message-driven>
> <ejb-name>MDB</ejb-name>
> <configuration-name>Standard Message Driven
> Bean</configuration-name>
> <destination-jndi-name>topic/testTopic</destination-jndi-name>
>
> </message-driven>
>
> </enterprise-beans>
> </jboss>
> ----------------------------------------------------------------------------
> -----
> I have this client that tries to send stuff to the message bean:
>
> import javax.naming.*;
> import javax.jms.*;
> public class Main {
> public static void main(String arg[]) {
> try {
> // Get access to JNDI
> Context context = new InitialContext();
>
> // Lookup the managed connection factory for a topic
> TopicConnectionFactory topicFactory =
> (TopicConnectionFactory)context.lookup("TOPIC_FACTORY"); //HOW DO I
> REGISTER THIS CONNECTION FACTORY?
>
> //Create a connection to the JMS provider
> TopicConnection topicConnection =
> topicFactory.createTopicConnection();
>
> // Creat a topic session
> TopicSession session = topicConnection.createTopicSession(false,
> Session.AUTO_ACKNOWLEDGE);
>
> // Lookup the destination you want to publish to
> Topic topic = (Topic)context.lookup("topic/testTopic");
> System.out.println("Topic set...");
>
> // Create a publisher
> TopicPublisher pub = session.createPublisher(topic);
>
> // Create a message
> TextMessage message = session.createTextMessage();
> message.setText("Hello World!");
>
> // Publish the message
> pub.publish(topic, message);
>
> // Close the stuff
> session.close();
> topicConnection.close();
> }
> catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
>
> ----------------------------------------------------------------------------
> -----
> Sets this CLASSPATH before running the client:
> set
> CLASSPATH=D:\JBoss-2.2.1\client\ejb.jar;D:\JBoss-2.2.1\client\ejb.jar;D:\JBo
> ss-2.2.1\client\jnp-client.jar;D:\JBoss-2.2.1\client\jta-spec1_0_1.jar;D:\JB
> oss-2.2.1\client\jbossmq-client.jar;.;D:\JBoss-2.2.1\lib\ext\jms.jar;
>
> When the Main-client is run this ERROR appears:
>
> javax.naming.NoInitialContextException: Need to specify class name in
> environment or system property
> , or as an applet parameter, or in an application resource file:
> java.naming.factory.initial
> at
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:646)
> at
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:246)
> at
> javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:283)
> at javax.naming.InitialContext.lookup(InitialContext.java:350)
> at Main.main(Main.java:31)
> ----------------------------------------------------------------------------
> -----
>
> Best regards from
> _________________
> Cecilie Aulesjord
> Developer
>
> Locus AS
> Leif Weldingsvei 6-8
> P.O.Box 2087
> N- 3202 Sandefjord
> Norway
> http://www.locus.no/
> E-mail: [EMAIL PROTECTED]
> Phone: +47 33 48 42 00
> Direct: +47 33 48 42 15
> Fax: +47 33 48 42 01
> Mobile: +47 47 62 32 15
> _________________
>
>
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-user
--
Jobba hos oss: http://www.tim.se/weblab
------------------------------------------------------------
Peter Antman Technology in Media, Box 34105 100 26 Stockholm
Systems Architect WWW: http://www.tim.se
Email: [EMAIL PROTECTED] WWW: http://www.backsource.org
Phone: +46-(0)8-506 381 11 Mobile: 070-675 3942
------------------------------------------------------------
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user