gpt4 book ai didi

java - JMS中如何使用JNDI

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:48 24 4
gpt4 key购买 nike

我正在学习 JMS,尝试了下面的一个简单示例,但它给出了错误

package pointToPoint;
import javax.naming.InitialContext;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.QueueSession;
import javax.jms.QueueReceiver;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;

public class Receiver
{
public static void main(String[] args) throws Exception
{
// get the initial context
InitialContext ctx = new InitialContext();

// lookup the queue object
Queue queue = (Queue) ctx.lookup("queue/queue0");

// lookup the queue connection factory
QueueConnectionFactory connFactory = (QueueConnectionFactory) ctx.
lookup("queue/connectionFactory");

// create a queue connection
QueueConnection queueConn = connFactory.createQueueConnection();

// create a queue session
QueueSession queueSession = queueConn.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);

// create a queue receiver
QueueReceiver queueReceiver = queueSession.createReceiver(queue);

// start the connection
queueConn.start();

// receive a message
TextMessage message = (TextMessage) queueReceiver.receive();

// print the message
System.out.println("received: " + message.getText());

// close the queue connection
queueConn.close();
}
}

错误信息:

Exception in thread "main" 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(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at pointToPoint.Receiver.main(Receiver.java:22)

谁能帮我解决这个问题。

最佳答案

答案在堆栈跟踪中。在独立应用程序中,您应该将环境(实现、url 等)传递给 InitialContext。在像 JBoss 这样的 J2EE 容器中,您的代码将起作用。

这应该有帮助: NoInitialContextException error

关于java - JMS中如何使用JNDI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5754268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com