JMS无法解析QueueConnectionFactory

时间:2013-07-03 07:42:58

标签: queue jms weblogic12c

沃尔克斯!

我有问题。我想阅读一些来自Weblogic 12c的消息。此代码当前正在与另一台服务器一起使用,该服务器未由我配置。所以问题可能出在服务器的配置上。

问题在于我使用代码:

public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
public final static String JMS_FACTORY="QCF";
public final static String QUEUE="dizzyworldQueue";
public final static String USER_NAME="weblogic";
public final static String USER_PASSWORD="Welcome1";
public final static String URL="t3://localhost:8001";

private static InitialContext getInitialContext(String url) throws NamingException
{
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
    env.put(Context.PROVIDER_URL, url);
    env.put(Context.SECURITY_PRINCIPAL, USER_NAME);
    env.put(Context.SECURITY_CREDENTIALS, USER_PASSWORD);
    return new InitialContext(env);
}


    qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
    qcon = qconFactory.createQueueConnection(); // here it falls

错误是:

  

线程“main”中的异常javax.naming.NameNotFoundException:无法解析'QCF'。已解决''[根异常是javax.naming.NameNotFoundException:无法解析'QCF'。解决 ''];剩余名称'QCF'

我的服务器上有Queue和QueueConnection工厂。什么可以成为里程?

1 个答案:

答案 0 :(得分:1)

消息显示您的命名服务(JNDI)中没有名为“QCF”的连接工厂绑定。

因此,您必须配置应用程序服务器以通过JNDI提供队列连接工厂。

如果已经是这种情况,则必须在客户端代码中更改该名称以匹配JNDI中的名称。

您必须在管理控制台中添加连接工厂和队列。

寻找服务 - JMS模块。可能添加JMS模块,并添加连接工厂和队列。

看一下这个tutorial,它会显示配置它的步骤。