Java 在独立应用程序中为JMS队列创建远程使用者
我的服务器Glashfish4中有一个JMS实现生产者和消费者。 当我在glashfish中作为appclient执行时,消费代码可以工作 Producer.java Consumer.java 我需要做一个消费者远程独立java应用程序 在我的glassfish服务器中,我编辑了JMS连接工厂的属性,并添加了值为x.x.x.x:xxxx的属性addressListJava 在独立应用程序中为JMS队列创建远程使用者,java,jakarta-ee,jms,glassfish-4,java-ee-7,Java,Jakarta Ee,Jms,Glassfish 4,Java Ee 7,我的服务器Glashfish4中有一个JMS实现生产者和消费者。 当我在glashfish中作为appclient执行时,消费代码可以工作 Producer.java Consumer.java 我需要做一个消费者远程独立java应用程序 在我的glassfish服务器中,我编辑了JMS连接工厂的属性,并添加了值为x.x.x.x:xxxx的属性addressList 有什么想法吗?首先在独立java应用程序副本文件gf-client.jar的lib文件夹中。 此文件的位置是您的\u glassf
有什么想法吗?首先在独立java应用程序副本文件gf-client.jar的lib文件夹中。 此文件的位置是您的\u glassfish\u安装目录/glassfish/lib 代码
@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);
@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);
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");