Added jar. Modified code is:
import javax.jms.*;
import javax.naming.InitialContext;
import java.util.*;
import java.io.*;
public class LogClient {
public static void main(String[] args) throws Exception {
Properties p = new Properties();
p.load(new FileInputStream("jndi.properties"));
p.put("openejb.authentication.realmName","geronimo-admin");
//Initialize JNDI
InitialContext ctx = new InitialContext(p);
//Lookup connection factory
TopicConnectionFactory factory = (TopicConnectionFactory)
ctx.lookup("ConnectionFactory");
//Use connection factory to create JMS connection
TopicConnection connection = factory.createTopicConnection();
//Use connection to create a session
TopicSession session = connection.createTopicSession(false,
Session.AUTO_ACKNOWLEDGE);
//lookup destination
Topic topic = (Topic)ctx.lookup("java:comp/env/jms/Topic");
//create a message publisher
TopicPublisher publisher = session.createPublisher(topic);
//create and publish a message
TextMessage msg = session.createTextMessage();
msg.setText("This is a test message");
publisher.send(msg);
//finish
publisher.close();
System.out.println("Message published. Please check application
server's console to see the response from MDB");
}
}
jndi.properties file is:
java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url=vm://localhost
queue.MyQueue=example.MyQueue
topic.MyTopic=example.MyTopic
java.naming.security.principal=system
java.naming.security.credentials=manager
When I ran the program I got the following error message:
log4j:WARN No appenders could be found for logger
(org.apache.activemq.broker.jmx.ManagementContext).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/activeio/journal/active/JournalLockedException
axiez wrote:
>
> I have the following sample code and jndi.properties file:
> import javax.jms.*;
> import javax.naming.InitialContext;
> import java.util.*;
> import java.io.*;
> public class LogClient {
> public static void main(String[] args) throws Exception {
> Properties p = new Properties();
> p.load(new FileInputStream("jndi.properties"));
> p.put("openejb.authentication.realmName","geronimo-admin");
> InitialContext ctx = new InitialContext(p);
> TopicConnectionFactory factory = (TopicConnectionFactory)
> ctx.lookup("java:comp/env/jms/DefaultActiveMQConnectionFactory");
> TopicConnection connection = factory.createTopicConnection();
> TopicSession session = connection.createTopicSession(false,
> Session.AUTO_ACKNOWLEDGE);
> Topic topic = (Topic)ctx.lookup("java:comp/env/jms/Topic");
> TopicPublisher publisher = session.createPublisher(topic);
> TextMessage msg = session.createTextMessage();
> msg.setText("This is a test message");
> publisher.send(msg);
> publisher.close();
> System.out.println("Message published. Please check application
> server's console to see the response from MDB");
> }
> }
>
> jndi.properties file:
> java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
> java.naming.provider.url=tcp://localhost:61616
> java.naming.security.principal=system
> java.naming.security.credentials=manager
>
> I ran the program after successful compilation. Error message is:
> Exception in thread "main" javax.naming.NoInitialContextException: Cannot
> instantiate class: org.apache.activemq.jndi.ActiveMQInitialContextFactory
> [Root exception is java.lang.ClassNotFoundException:
> org.apache.activemq.jndi.ActiveMQInitialContextFactory]
>
>
--
View this message in context:
http://www.nabble.com/java.lang.ClassNotFoundException%3A-org.apache.activemq.jndi.ActiveMQInitialContextFactory-tp21537474s134p21577447.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.