标签: durable-subscription

JMS 对一个主题的多个持久订阅

我现在开始 JMS 一个星期了。我使用 Netbeans、maven 和 glassfish 创建了 JMS。

我有一个生产者一个持久消费者,我想向同一个主题(不是队列)添加另一个持久消费者。有可能这样做吗?因为我希望所有消费者都消费生产者发送的所有消息,无论消费者是否离线。

有什么建议吗?谢谢

public class DurableReceive {

@Resource(lookup = "jms/myDurableConnectionFactory")
private static ConnectionFactory connectionFactory;

@Resource(lookup = "jms/myNewTopic")
private static Topic topic;

public static void main(String[] args) {
    Destination dest = (Destination) topic;
    JMSConsumer consumer;
    boolean messageReceived = false;
    String message;
    System.out.println("Waiting for messages...");

    try (JMSContext context = connectionFactory.createContext();) {
        consumer = context.createDurableConsumer(topic, "Subscriber1");
        while (!messageReceived) {
            message = consumer.receiveBody(String.class);
            if (message != null) {
                System.out.print("Received the following …
Run Code Online (Sandbox Code Playgroud)

java jms-topic durable-subscription

5
推荐指数
1
解决办法
3271
查看次数

持久订阅 ActiveMQ

我正在尝试为我的消息设置持久订阅者,以便即使在服务器重新启动后它们也能保留在主题中。

但在配置过程中我收到与 xml 相关的错误:

这是我的配置 xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:int="http://www.springframework.org/schema/integration"
       xmlns:int-jms="http://www.springframework.org/schema/integration/jms"
       xmlns:oxm="http://www.springframework.org/schema/oxm"
       xmlns:int-jme="http://www.springframework.org/schema/integration"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
                http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
                http://www.springframework.org/schema/integration/jms http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd
                http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd">


    <!-- Component scan to find all Spring components -->
    <context:component-scan base-package="com.geekcap.springintegrationexample" />

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="order" value="1" />
        <property name="messageConverters">
            <list>
                <!-- Default converters -->
                <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.FormHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
                <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
            </list>
        </property>
    </bean>

    <!-- Define a channel to communicate out to a JMS Destination …
Run Code Online (Sandbox Code Playgroud)

java activemq-classic jms spring-integration durable-subscription

3
推荐指数
1
解决办法
5459
查看次数