2017-01-13 2 views
0

Derzeit, ich bin auf benutzerdefinierte Task Executor, d. Ich habe versucht, mit task-executor-Attribut zu konfigurieren, aber es scheint, dass es nicht unterstützt. Reasson hier, ich möchte es an die Thread-Verwaltung des Servers delegieren als Spring Standard-Task Executor verwenden. Im Folgenden finden Sie die Beispielkonfiguration -Konfigurieren von benutzerdefinierten taskExecutor im Frühjahr Integration <Int-Jms: Inbound-Gateway>

<jms:inbound-gateway request-destination="getQueue" 
     request-channel="inputChannel" 
     connection-factory="connectionFactory" 
     error-channel="errorChannel" concurrent-consumers="10" 
     transaction-manager="transactionManager" 
     reply-delivery-persistent="false" reply-time-to-live="30000" explicit-qos-enabled-for-replies="true" 
     /> 

I have tried to plug the taskExecutor as below, but it doesn't seems to be working. I am not sure if there is anything wrong with it? Do I need to provide "messageListener" too with container? However, I have tried hooking messageListener as well i.e. using ChannelPublishingJmsMessageListener, but that too didn't work. Here issue is, it is not picking/reading the messages from "destination". 

<bean id="taskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor"> 
     <property name="workManagerName" value="wm/default" /> 
</bean> 

<bean id="transactionManager" class="org.springframework.transaction.jta.WebSphereUowTransactionManager" /> 

<jms:inbound-gateway request-channel="inputChannel" error-channel="errorChannel" container="channelContainer"/> 

<bean id="channelContainer" 
class="org.springframework.jms.listener.DefaultMessageListenerContainer"> 
<property name="connectionFactory" ref="connectionFactory" /> 
<property name="destination" ref="getQueue" /> 
<property name="taskExecutor" ref="taskExecutor" /> 
<property name="transactionManager" ref="transactionManager" /> 
<property name="concurrentConsumers" value="10" /> 
<property name="autoStartup" value="true" /> 
</bean> 

<int:chain input-channel="inputChannel"> 
    <int:transformer method="..." ref="messageTransformer" /> 
    <int:claim-check-in message-store="messageStore"/> 
    <int:header-enricher> 
     <int:header name="..." expression="payload" /> 
    </int:header-enricher> 
    <int:claim-check-out message-store="messageStore"/> 
    <int:transformer method="..." ref="requestObjectConverter" /> 
    <int:service-activator method="..." ref="...." /> 
    <int:transformer method="..." ref="responseObjectConverter" /> 
    <int:transformer method="...." ref="messageTransformer" /> 
</int:chain> 

<int:chain input-channel="errorChannel"> 
     <int:transformer method="..." ref="errorTransformer" /> 
</int:chain> 

<bean id="errorTransformer" class="...."> 
    ...... 
    <property name="messageStore" ref="messageStore"></property> 
    ...... 
</bean> 

Antwort

0

verdrahten ein <bean/> vom Typ DefaultMessageListenerContainer und es an das Gateway über das Attribut container bieten ...

<jms:inbound-gateway id="gatewayWithContainerReference" 
        container="messageListenerContainer" 
        request-channel="requestChannel" /> 

<bean id="messageListenerContainer" 
     class="org.springframework.jms.listener.DefaultMessageListenerContainer"> 
    <property name="connectionFactory" ref="testConnectionFactory"/> 
    <property name="destinationName" value="testDestination"/> 
    <property name="taskExecutor" ref="workManagerTE" /> 
    ... 
</bean> 

Beachten Sie, dass bestimmte JMS-bezogene Attribute für unterwegs Container, nicht direkt am Gateway. Andere Attribute verbleiben auf dem Gateway.

+0

Danke Gary! Ich habe versucht, Konfiguration bereits gegeben ... aber irgendwie funktionierte es nicht, d. H. Erhielt die Nachrichten nicht ... Müssen wir "messageListener" auch auf Behälter konfigurieren? –

+0

Wie Sie sehen können, ist es nicht einfach, die Konfiguration in Kommentaren zu lesen. Bitte lösche sie und bearbeite stattdessen deine Frage und ich schaue nach. –

+0

Hallo Gary ... Ich habe die Kommentare gelöscht und die Frage selbst wie vorgeschlagen bearbeitet. Bitte werfen Sie einen Blick und lassen Sie mich Ihre Kommentare wissen. Hier ist das Problem, die angegebene Konfiguration (in der bearbeiteten Frage) liest nicht wirklich die Nachrichten vom Ziel. –

Verwandte Themen