消耗队列中的消息,然后将这些消息写入文本文件中

时间:2015-04-03 14:54:12

标签: spring spring-integration

我写了下面的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>

1 个答案:

答案 0 :(得分:0)

我在配置中看到了第一个问题:

  

目录=&#34; C:\ messagesoutput.txt&#34;

它必须是目录而不是文件路径。

另一个问题。如果您想为每条消息创建一个文件,或者只是将它们全部添加到同一个文件中,则不清楚。

对于最后一种情况,请使用mode="APPEND"

对于fileName,您可以使用filename-generator-expression="'messagesoutput.txt'"

而且,请不要混合使用不同版本的Spring Integration jar。并尝试使用versionless schemaLocation