0

我正在尝试在我的机器上设置OpenJMS并尝试从命令行运行基本示例。但是,我不知道该怎么做。

这是我到目前为止所做的,

运行开放 JMS

➜  bin ./startup.sh
Using OPENJMS_HOME: /Users/gaurang.shah/Documents/personal/jms/openjms-0.7.7-beta-1
Using JAVA_HOME:    /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
OpenJMS 0.7.7-beta-1
The OpenJMS Group. (C) 1999-2007. All rights reserved.
http://openjms.sourceforge.net
11:46:59.353 INFO  [main] - Server accepting connections on tcp://192.168.2.12:3035/
11:46:59.355 INFO  [main] - JNDI service accepting connections on tcp://192.168.2.12:3035/
11:46:59.356 INFO  [main] - Admin service accepting connections on tcp://192.168.2.12:3035/
11:46:59.453 INFO  [main] - Server accepting connections on rmi://192.168.2.12:1099/
11:46:59.453 INFO  [main] - JNDI service accepting connections on rmi://192.168.2.12:1099/
11:46:59.454 INFO  [main] - Admin service accepting connections on rmi://192.168.2.12:1099/

启动发件人

➜  basic ./run.sh Sender new_topic 1
Using OPENJMS_HOME: /Users/gaurang.shah/Documents/personal/jms/openjms-0.7.7-beta-1
Using JAVA_HOME:    /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
Using CLASSPATH:    ./:/Users/gaurang.shah/Documents/personal/jms/openjms-0.7.7-beta-1/lib/openjms-0.7.7-beta-1.jar
hello

启动接收器

➜  basic ./run.sh Receiver new_topic
Using OPENJMS_HOME: /Users/gaurang.shah/Documents/personal/jms/openjms-0.7.7-beta-1
Using JAVA_HOME:    /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
Using CLASSPATH:    ./:/Users/gaurang.shah/Documents/personal/jms/openjms-0.7.7-beta-1/lib/openjms-0.7.7-beta-1.jar

但是,我无法在接收方得到任何东西。

4

1 回答 1

0

在 JMS 中,如果将消息发送到某个主题,则该主题的所有订阅者都会收到该消息。如果该主题没有订阅者,则发送到该主题的任何消息都将被丢弃(即不存储该消息)。这是基本的发布-订阅语义。

因此,如果您在启动接收器/订阅者之前发送消息,那么它将不会收到消息。

在发送消息之前启动接收器,它应该会接收到它。

于 2019-03-04T19:35:50.833 回答