Spring integration 消息处理程序不';不总是接收通过http入站端点发布的消息

Spring integration 消息处理程序不';不总是接收通过http入站端点发布的消息,spring-integration,Spring Integration,我有一个流程的配置,该流程接收收据,并将收据发送给邮件列表中的多个收件人。所有收到的收据都保存到数据库中。此外,发送给收件人的所有邮件都会保存到数据库中以生成报告。当接收到消息时,它们由转换器进行转换,收件人列表路由器将消息发送到收据和邮件队列的相应JMS队列。我们的目标是让它们相互独立地并行处理。但是,当使用浏览器进行测试时,消息并不总是由在队列中注册的相应处理程序处理。这种行为相当不可预测。以下是我的配置: <!--Queues and ConnectionFactory Co

我有一个流程的配置,该流程接收收据,并将收据发送给邮件列表中的多个收件人。所有收到的收据都保存到数据库中。此外,发送给收件人的所有邮件都会保存到数据库中以生成报告。当接收到消息时,它们由转换器进行转换,收件人列表路由器将消息发送到收据和邮件队列的相应JMS队列。我们的目标是让它们相互独立地并行处理。但是,当使用浏览器进行测试时,消息并不总是由在队列中注册的相应处理程序处理。这种行为相当不可预测。以下是我的配置:

    <!--Queues and ConnectionFactory Configurations -->

    <import resource="queue.definitions.xml" />


    <int:channel id="requestChannel">

    </int:channel>

    <int:channel id="queue1" />

    <int:channel id="queue2" />




    <int-http:inbound-channel-adapter id="inboundRequests"
        supported-methods="PUT,POST" status-code-expression=
                       "T(org.springframework.http.HttpStatus).ACCEPTED"
        path="/receipts" channel="requestChannel">
    </int-http:inbound-channel-adapter>






    <int:chain input-channel="requestChannel">
        <int:transformer ref="receiptTransformer" />
        <int:recipient-list-router>
            <int:recipient channel="queue2" />
            <int:recipient channel="queue1" />
        </int:recipient-list-router>
    </int:chain>




        <int-jms:outbound-channel-adapter id="receipt.outbound.channel"
            channel="queue1" destination="receiptsQueue" />

        <int-jms:outbound-channel-adapter id="mail.outbound.channel"
            channel="queue2" destination="mailingQueue" />

        class="org.springframework.jms.listener.
                              adapter.MessageListenerAdapter">
            <constructor-arg>
                <bean
                    class="com.express.ccs.MailProcessingDelegate" />

        <bean id="mailingQueueListener"
                            </constructor-arg>
            <property name="defaultListenerMethod" value="receiveMessage" />
            <property name="messageConverter">
                <null />
            </property>
        </bean>

        <bean id="receiptsProcessingListener"
            class="org.springframework.jms.listener.adapter
            .MessageListenerAdapter">
            <constructor-arg>
                <bean class="com.express.ccs.ReceiptsProcessingDelegate" />
            </constructor-arg>
            <property name="defaultListenerMethod" value="receiveMessage" />
            <property name="messageConverter">
                <null />
            </property>
        </bean>
        <bean id="mailingQueueContainer"
            class="org.springframework.jms.listener.
           DefaultMessageListenerContainer">
            <property name="connectionFactory" ref="connectionFactory" />
            <property name="destination" ref="mailingQueue" />
            <property name="concurrentConsumers" value="1" />
            <property name="messageListener" ref="mailingQueueListener" />
        </bean>

          <bean id="receiptJmsContainer"
            class="org.springframework.jms.listener.
            DefaultMessageListenerContainer">
            <property name="connectionFactory" ref="connectionFactory" />
            <property name="destination" ref="receiptsQueue" />
            <property name="concurrentConsumers" value="1" />
            <property name="messageListener"      
                   ref="receiptsProcessingListener" />
          </bean>
       </beans>

class=“org.springframework.jms.listener。
adapter.MessageListenerAdapter“>

我建议打开调试日志并通过流跟踪消息。配置对您来说合适吗?表面上看,是的,但是调试静态配置并不是那么容易,仅仅通过查看它;调试日志始终是您的朋友。谢谢,我已打开调试,并创建了一个文件附加器以了解发生了什么。我只是想首先确保我的配置看起来正确