メッセージが FORWARD キューに送受信されるときの簡単なテストを作成したいと思います。メッセージを受信したら、サービスを呼び出す必要があります。
残念ながら、メッセージは送信されますが、受信されMessage<?> message = MessageBuilder.withPayload(params); forwardGateway.sendPremMessage(message);
ません。
これは私の設定です:
<!-- SENDER -->
<si:gateway id="forwardGateway"
service-interface="com.ucware.ucpo.forward.jms.MessageGateway"
default-request-channel="inputChannel"/>
<si:channel id="inputChannel"/>
<!-- Subscriber to a channel -->
<int-jms:outbound-channel-adapter
channel="inputChannel"
connection-factory="connectionFactory"
destination-name="FORWARD" />
<!-- RECEIVER -->
<int:channel id="jmsInChannel"/>
<!-- Subscriber to jmsInChannel. Used instead of inboud channel adapter -->
<int-jms:message-driven-channel-adapter id="messageDrivenAdapter"
channel="jmsInChannel" destination-name="FORWARD" connection-factory="connectionFactory"
concurrent-consumers="1" auto-startup="true" acknowledge="auto"/>
// This service should be invoked but it is not
<si:service-activator id ="activator"
input-channel="jmsInChannel"
ref="messageService"
method="process"/>
サービスは次のように定義されます。
@MessageEndpoint
public class MessageService {
public void process(Message<?> message )
ゲートウェイは次のようになります。
public interface MessageGateway {
@Gateway
public void sendPremMessage(Message<?> message);
}