2014-10-13 3 views
0

У меня есть реализация JMS (производитель и потребитель) на моем сервере Glashfish 4. Потребительский код работает, когда я выполнял как appclient в glashfish.Создание удаленного пользователя для очереди JMS в автономном приложении

Producer.java

@Resource(lookup = "java:comp/DefaultJMSConnectionFactory") 
private static ConnectionFactory connectionFactory; 
@Resource(lookup = "jms/MyQueue") 
private static Queue queue; 
... 
JMSContext context = connectionFactory.createContext(); 
context.createProducer().send((Destination) queue, message); 

Consumer.java

@Resource(lookup = "java:comp/DefaultJMSConnectionFactory") 
private static ConnectionFactory connectionFactory; 
@Resource(lookup = "jms/MyQueue") 
private static Queue queue; 

... 
JMSConsumer consumer; 
JMSContext context = connectionFactory.createContext(); 
consumer = context.createConsumer((Destination) queue); 
Message m = consumer.receive(1000); 

мне нужно сделать потребителя удаленного автономного Java приложения.

В моем GlassFish сервере, я редактировал свойства JMS Factory Connection и я добавил свойство Addresslist со значением х.х.х.х: хххх

Любые идеи?

ответ

0

Сначала в вашей папке lib вашего автономного java-приложения скопируйте файл gf-client.jar. Местоположение этого файла: your_glassfish_installation_directory/glassfish/lib.

Код

Properties props = new Properties(); 

props.setProperty("java.naming.factory.initial", 
     "com.sun.enterprise.naming.SerialInitContextFactory"); 



// optional. Defaults to localhost. Only needed if web server is running 
// on a different host than the appserver 
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost"); 

// optional. Defaults to 3700. Only needed if target orb port is not 3700. 
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700"); 
InitialContext ic = new InitialContext(props); 
QueueConnectionFactory cf = (QueueConnectionFactory)ic.lookup("jms/MyConnectionFactory"); 
Queue queue =(Queue)ic.lookup("jms/queue");