/ / споживання повідомлень з черги, а потім запис цих повідомлень у текстовий файл - весна, весна-інтеграція

споживання повідомлень з черги, а потім записування цих повідомлень у текстовий файл - весна, інтеграція весни

Я писав нижче програму інтеграції веснив якому я намагаюся читати повідомлення з черги, а потім зберігати повідомлення у файлі на диску c: мого комп'ютера, як ніби файл не створений, тоді він створить новий файл, ім'я якого буде outputmessages.txt, але обряд тепер файл не підготовлений, чи можете ви повідомити, що пішло не так, як я можу подолати це?

 <int:channel id="output"  >

</int:channel>

<bean id="tibcoEMSJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">com.tibco.tibjms.naming.TibjmsInitialContextFactory</prop>
<prop key="java.naming.provider.url">tcp://abc.net:2333</prop>
<prop key="java.naming.security.principal">wert</prop>
<prop key="java.naming.security.credentials">wert</prop>
</props>
</property>
</bean>

<bean id="tibcoEMSConnFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="tibcoEMSJndiTemplate" />
</property>
<property name="jndiName">
<value>GenericConnectionFactory</value>
</property>
</bean>

<bean id="tibcosendJMSTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref local="tibcoEMSConnFactory" />
</property>
<property name="defaultDestinationName">
<value>abc.test.data</value>
</property>
<property name="pubSubDomain">
<value>false</value>
</property>
<property name ="receiveTimeout">
<value>120000</value>
</property>
</bean>


<int:channel id="input">

</int:channel>

<jms:outbound-channel-adapter channel="input" destination-name="abc.test.data"  connection-factory="tibcoEMSConnFactory" />

<jms:message-driven-channel-adapter channel="filesIn"   concurrent-consumers="2"  destination-name="abc.test.data" connection-factory="tibcoEMSConnFactory"   />

<file:outbound-channel-adapter id="filesIn" auto-create-directory="true" filename-generator-expression=""messagesoutput.txt""
directory="c:\message\" >
</file:outbound-channel-adapter>

</beans>

Відповіді:

0 для відповіді № 1

Я бачу першу проблему у вашій конфігурації:

directory = "c: messagesoutput.txt"

це справді має бути a каталог не шлях до файлу.

Ще одне занепокоєння. Не зрозуміло, чи ви хочете створити файл для кожного повідомлення або просто додати їх всі до одного.

Для останнього випадку використовуйте mode="APPEND".

Для fileName ви можете використовувати filename-generator-expression=""messagesoutput.txt"".

І, будь ласка, не змішуйте різні версії банок Spring Integration. І спробуйте використовувати versionless schemaLocation.