1

payloadgemfire キャッシュに送信しようとしています。payloadこれを MQ メッセージとして受け取ります。myoutbound adapterが another の場合は正常に動作しQueueます。

ただし、送信チャネルが Gemfire の送信アダプターである場合、例外がスローされます。以下はコードスニペットです。

ここで助けていただければ幸いです。私はGemfire + Spring IOが初めてなので

<jms:message-driven-channel-adapter id="wMQ_in_channelAdapter" 
       concurrent-consumers="5"
       max-concurrent-consumers="10"
       connection-factory="inCachingConnectionFactory"           
       destination="requestQueue-mq"
       extract-payload="true"
       channel="demoChannel"/>


<integration:channel id="demoChannel"/>

<integration:service-activator input-channel="demoChannel" 
            ref="demoBean"
            method="upperCase"
            output-channel="orchestrationChannel" /> 

<integration:channel id="orchestrationChannel"/>

<gfe:cache id="PushProducer" cache-xml-location="classpath:PushProducer.xml"/>

<gfe:lookup-region id="exampleRegion" cache-ref="PushProducer" name="exampleRegion"/> 

<int-gfe:outbound-channel-adapter id="cacheChannel" channel="orchestrationChannel" region="exampleRegion">
        <int-gfe:cache-entries>
            <entry key="payload" value="abcd"/>
        </int-gfe:cache-entries> 
</int-gfe:outbound-channel-adapter>

以下は、アプリケーションでメッセージを受信したときに表示されるエラーです

[org.springframework.jms.listener.DefaultMessageListenerContainer#0-3][org.springframework.integration.gemfire.outbound.CacheWritingMessageHandler] org.springframework.integration.gemfire.outbound.CacheWritingMessageHandler#0 received message: GenericMessage [payload=<?xml version="1.0" encoding="UTF-8"?

上のpayload行にここに出力されます..そして下の行はエラーです

12:20:00.196 WARN  [org.springframework.jms.listener.DefaultMessageListenerContainer#0-3][org.springframework.jms.listener.DefaultMessageListenerContainer] Execution of JMS message listener failed, and no ErrorHandler has been set.
java.lang.AbstractMethodError
    at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:78)
    at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:116)
    at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:101)
    at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:97)
    at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:77)
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:277)
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:239)
    at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:115)
    at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:45)
    at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:95)
    at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput(AbstractMessageProducingHandler.java:248)
    at org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput(AbstractMessageProducingHandler.java:171)
    at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs(AbstractMessageProducingHandler.java:119)
    at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:105)
    at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:78)
    at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:116)
    at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:101)
    at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:97)
    at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:77)
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:277)
    at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:115)
    at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:45)
    at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:95)
    at org.springframework.messaging.core.AbstractMessageSendingTemplate.convertAndSend(AbstractMessageSendingTemplate.java:133)
    at org.springframework.messaging.core.AbstractMessageSendingTemplate.convertAndSend(AbstractMessageSendingTemplate.java:125)
    at org.springframework.integration.gateway.MessagingGatewaySupport.send(MessagingGatewaySupport.java:302)
    at org.springframework.integration.jms.ChannelPublishingJmsMessageListener$GatewayDelegate.send(ChannelPublishingJmsMessageListener.java:479)
    at org.springframework.integration.jms.ChannelPublishingJmsMessageListener.onMessage(ChannelPublishingJmsMessageListener.java:322)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:660)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:620)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:591)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:308)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:246)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1142)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1134)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1031)
    at java.lang.Thread.run(Thread.java:662)
4

2 に答える 2

0

AbstractMethodError通常、クラスパスの問題 (バージョンの不一致) が原因です。

spring-integration-coreこの場合、 4.x およびspring-integration-gemfire3.x (またはそれ以前)を使用しているように見えます。またはその逆。

4.0 では、そのメソッドのシグネチャが変更されました (別のMessageオブジェクト)。

すべてに 4.1.2 を使用することをお勧めします。

于 2015-02-15T14:16:53.087 に答える
0

まず第一に、スタックトレースに十分な情報がありません。に関する点はありませんCacheWritingMessageHandler

反対側からこれを参照してください: http://docs.spring.io/spring-integration/docs/latest-ga/reference/html/gemfire.html#gemfire-outbound。と の両方が SpEL 式でなければならないため、 your<entry key="payload" value="abcd"/>は有効ではありません。ルート評価オブジェクトが存在するため、オブジェクトにはそのようなゲッターはありません。keyvalueMessagegetAbcd()Message

于 2015-02-15T09:53:42.350 に答える