【问题标题】:Glassfish Server JMS standalone QUEUEGlassfish 服务器 JMS 独立队列
【发布时间】:2014-07-26 16:11:44
【问题描述】:

尝试在 JMS 中运行 QUEUE:Producer 代码时引发错误。

java.lang.RuntimeException: Orb 初始化错误 javax.naming.NamingException:在 SerialContext [myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,java.naming.factory.url.pkgs=com 中查找“myQueueConnectionFactory”失败。 sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [根异常是 javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={ java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,java.naming.factory.url.pkgs=com.sun.enterprise.naming,java.naming.factory.state=com.sun。 corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [根异常是 java.lang.RuntimeException: Orb 初始化错误]]

我的代码是:

//Create and start connection  
            InitialContext ctx=new InitialContext();  
            QueueConnectionFactory f=(QueueConnectionFactory)ctx.lookup("myQueueConnectionFactory");  
            QueueConnection con=f.createQueueConnection();  
            con.start();  
            //2) create queue session  
            QueueSession ses=con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);  
            //3) get the Queue object  
            Queue t=(Queue)ctx.lookup("myQueue");  
            //4)create QueueSender object         
            QueueSender sender=ses.createSender((t));  
            //5) create TextMessage object  
            TextMessage msg=ses.createTextMessage(); 

【问题讨论】:

    标签: glassfish jms lookup


    【解决方案1】:

    问题是您的应用程序无法查找()给定的 JMS 资源,并且 JavaxNaming 会引发异常。可能的原因:

    -我看不到您将连接信息(属性)放在服务器的什么位置。通过调用不带参数的 InitialContext() 构造函数,您无法说出您尝试从哪个提供程序 url 和安全凭证中查找工厂和目的地。 (如果我在你的问题或你的逻辑中失去了一些东西,请原谅)。

    -你在服务器上创建JMS资源了吗?

    -Glassfish 通常将工厂和目标存储在 JMS 文件夹中,因此要查找的路径可能必须是:

    QueueConnectionFactory f=(QueueConnectionFactory)ctx.lookup("jms/myQueueConnectionFactory");
    Queue t=(Queue)ctx.lookup("jms/myQueue");
    

    您可以在远程 asadmin 模式下使用 list-jms-resources 子命令检查现有资源及其路径。

    有关 JMS 资源创建和处理的更多信息:look here

    【讨论】:

      猜你喜欢
      • 2012-03-13
      • 2014-01-21
      • 2020-02-15
      • 2012-01-03
      • 2014-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多