2014-06-05 3 views
0

Ошибка при попытке запустить QUEUE: код производителя в JMS.Glassfish Server JMS автономный QUEUE

java.lang.RuntimeException: инициализация Orb Erorr javax.naming.NamingException: Поиск Сбой '' myQueueConnectionFactory в 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} [Исключение корня - javax. naming.NamingException: невозможно получить SerialContextProvider для 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 initialization erorr]]

Мой код:

//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(); 

ответ

0

Проблема заключается в том, что ваше приложение не может поиск() данные JMS ресурсов и JavaxNaming бросает исключение. Возможные причины:

-I не может видеть, где вы указываете информацию о соединении (Свойства) на сервер. Вызывая конструктор InitialContext() без параметров, вы не можете сказать, с какого URL-адреса провайдера и учетных данных безопасности вы пытаетесь найти завод и пункт назначения. (Извините, если я что-то потеряю в вашем вопросе или вашей логике).

-Вы создали ресурсы JMS на сервере?

-Glassfish обычно хранит заводы и destiantions в папке JMS так пути, чтобы быть посмотрел, вероятно, должны быть:

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

Вы можете проверить существующие ресурсы и их пути, используя субкоманду список-JMS-ресурсов в режиме удаленного asadmin.

Для получения дополнительной информации о создании и использовании ресурсов JMS: look here

Смежные вопросы