Poniżej napisałem wiosenny program integracyjnyw którym próbuję czytać wiadomości z kolejki, a następnie przechowywać wiadomości w pliku na dysku c: mojego komputera, tak jakby plik nie został utworzony, utworzy nowy plik, którego nazwa będzie wyjściowa wiadomości.txt, ale rite teraz plik nie jest przygotowany, czy możesz doradzić, co poszło nie tak, jak mogę temu zaradzić.
<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>
Odpowiedzi:
0 dla odpowiedzi № 1Widzę pierwszy problem w twojej konfiguracji:
directory = "c: messagesoutput.txt"
to naprawdę musi być informator nie jest ścieżką do pliku.
Kolejna obawa. Nie jest jasne, czy chcesz utworzyć plik dla każdej wiadomości, czy po prostu dodać je wszystkie do tego samego.
W ostatnim przypadku użyj mode="APPEND"
.
Dla fileName
możesz użyć filename-generator-expression=""messagesoutput.txt""
.
I proszę, nie mieszaj różnych wersji słoików Spring Integration. Spróbuj ich użyć versionless
schemaLocation
.