我写了下面的spring集成程序,其中我试图从队列中读取消息,然后将消息存储在我的计算机的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 :(得分:0)
我在配置中看到了第一个问题:
目录=&#34; C:\ messagesoutput.txt&#34;
它必须是目录而不是文件路径。
另一个问题。如果您想为每条消息创建一个文件,或者只是将它们全部添加到同一个文件中,则不清楚。
对于最后一种情况,请使用mode="APPEND"
。
对于fileName
,您可以使用filename-generator-expression="'messagesoutput.txt'"
。
而且,请不要混合使用不同版本的Spring Integration jar。并尝试使用versionless
schemaLocation
。