1
S3からインバウンドチャネルアダプタを使用してファイルをダウンロードしようとしています。ここに私の設定です:私が実行しようとすると、私は取得していますSpring Integration S3 'beanName'は空であってはなりません
s3.xml:
<int:chain input-channel="s3ReaderChannel" output-channel="uncompressPayloadChannel">
<int:service-activator ref="s3Bean" method="generateS3ObjectHash" />
<int-aws:s3-inbound-channel-adapter
bucket="${s3.bucket}"
session-factory="s3SessionFactory"
auto-create-local-directory="true"
auto-startup="false"
filename-pattern="*.gz"
local-directory="."
local-filename-generator-expression="#this"
temporary-file-suffix=".transffering"
remote-directory="/remote/mytransfers"
local-filter="acceptAllFilter"/>
</int:chain>
<bean id="s3SessionFactory"
class="org.springframework.integration.aws.support.S3SessionFactory"/>
aws-credentials.xml:
<!-- Define global credentials for all the AWS clients -->
<aws-context:context-credentials>
<aws-context:instance-profile-credentials/>
<aws-context:simple-credentials access-key="${aws.accesskey}"
secret-key="${aws.secretkey}"/>
</aws-context:context-credentials>
<!-- Define global region -->
<aws-context:context-region region="${aws.region}"/>
:
Exception in thread "main"`
`org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected
exception parsing XML document from file`; nested exception is
java.lang.IllegalArgumentException: 'beanName' must not be empty
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:414)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
...30 more
Caused by: java.lang.IllegalArgumentException: 'beanName' must not be empty
at org.springframework.util.Assert.hasText(Assert.java:181)
at org.springframework.beans.factory.config.RuntimeBeanReference.<init>(RuntimeBeanReference.java:58)
at org.springframework.beans.factory.config.RuntimeBeanReference.<init>(RuntimeBeanReference.java:46)
at org.springframework.beans.factory.support.BeanDefinitionBuilder.addPropertyReference(BeanDefinitionBuilder.java:226)
at org.springframework.integration.config.xml.AbstractPollingInboundChannelAdapterParser.doParse(AbstractPollingInboundChannelAdapterParser.java:64)
...20 more
`
をスタックトレースから、AbstractPollingInboundChannelAdapterParser.java:64は、私はそれがあるので、理解しないoutputChannel、についてですチェーンで。
私はここで何が欠けていますか?
ユースケース:S3バケットにファイルをダンプする別のサービスがあります。ロジックに基づいて、私は必要なファイルを派生させ、私はこのS3バケットから引き出します。だから、私はサービスアクチベータが論理を導くチェーンに入れました。 – Preethi
そのためには、代わりに ''を使う必要があります。 Inbound Channel Adapterは、常にフローの開始点です。どんなイベントにも反応することはできません。タスクスケジューラがポーリングするだけです。期待したとおりに動かないようにするだけです。あなたはあなたの視点をこのコンポーネントに再考すべきです。 –
私はそれを試みましたが、DOWNLOAD操作のために、ペイロードを 'java.io.File'型にしました。どうして? – Preethi