Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 您能否在运行时确定目标是队列还是主题?_Java_Jms_Ibm Mq_Jms Topic - Fatal编程技术网

Java 您能否在运行时确定目标是队列还是主题?

Java 您能否在运行时确定目标是队列还是主题?,java,jms,ibm-mq,jms-topic,Java,Jms,Ibm Mq,Jms Topic,我有一个有趣的挑战,就是必须在一个环境中向主题发布消息,并且必须在另一个环境中向队列发送消息。这两个环境需要有相同的代码库。有没有办法在运行时确定目标是队列还是主题,并相应地调用代码发送到主题或队列?队列和主题扩展目标。因此,如果您有一个目的地实例,您可以使用instanceof来确定它是队列还是主题队列和主题扩展目的地。因此,如果您有一个目的地实例,您可以使用instanceof来确定它是队列还是主题在回答问题之前,有必要首先询问您认为代码对队列和主题有什么不同?如果WMQ类的历史不到十年,它

我有一个有趣的挑战,就是必须在一个环境中向主题发布消息,并且必须在另一个环境中向队列发送消息。这两个环境需要有相同的代码库。有没有办法在运行时确定目标是队列还是主题,并相应地调用代码发送到主题或队列?

队列和主题扩展目标。因此,如果您有一个目的地实例,您可以使用
instanceof
来确定它是队列还是主题

队列和主题扩展目的地。因此,如果您有一个目的地实例,您可以使用
instanceof
来确定它是队列还是主题

在回答问题之前,有必要首先询问您认为代码对队列和主题有什么不同?如果WMQ类的历史不到十年,它们将使用自JMS 1.1以来可用的统一模型。与其在
队列连接工厂
主题连接工厂
之间进行选择,不如让代码实例化一个通用的
连接工厂
。与其实例化
队列
主题
对象,不如让代码实例化
目标
对象。在这一点上,您真的不在乎目的地下的东西是队列还是主题


请参阅以获取完整的描述,包括示例代码源代码,其中显示了如何完成此操作。

在回答问题之前,有必要首先询问您认为代码对队列和主题的作用有何不同?如果WMQ类的历史不到十年,它们将使用自JMS 1.1以来可用的统一模型。与其在
队列连接工厂
主题连接工厂
之间进行选择,不如让代码实例化一个通用的
连接工厂
。与其实例化
队列
主题
对象,不如让代码实例化
目标
对象。在这一点上,您真的不在乎目的地下的东西是队列还是主题


有关完整的说明,请参阅,包括示例代码源代码,说明如何完成此操作。

谢谢您的回复。问题是,我不知道目的地X是队列还是主题。我是否能够为X创建一个目标对象,然后检查它是队列还是主题,并相应地调用代码?会话对象有两个方法#createTopic(String)和#createQueue(String)。所以,一般来说,只使用标准的JMS,ansnwer是不行的。您应该提前知道目的地的类型。谢谢您的回复。问题是,我不知道目的地X是队列还是主题。我是否能够为X创建一个目标对象,然后检查它是队列还是主题,并相应地调用代码?会话对象有两个方法#createTopic(String)和#createQueue(String)。因此,通常情况下,只使用标准JMS,ansnwer是不行的。您应该提前知道目的地的类型。