我想从S3存储桶下载xml文件,然后解组它们以将数据插入数据库中:
...
from("aws-s3://myBucket?accessKey=xxx&secretKey=yyy")
.to("file:D:/output?fileName=${in.header.CamelAwsS3Key}")
.unmarshal(new JaxbDataFormat("com.xxx"))
...
当我不尝试解组时,我可以下载文件,但是当我尝试解组时出现此错误:
org.apache.camel.TypeConversionException:
Error during type conversion from type:
com.amazonaws.services.s3.model.S3ObjectInputStream to the required type:
javax.xml.stream.XMLStreamReader with value com.amazonaws.services.s3.model.S3ObjectInputStream@67b8328b due javax.xml.stream.XMLStreamException:
java.io.IOException: Attempted read on closed stream.
由于我是Camel的新手,可能还有一些我不理解的事情......
谢谢!
答案 0 :(得分:0)
当你有第二个到Camel需要再次读取流,但它关闭。有时候,流只能读一次。并且它在第一个中被读取,您将其写入文件。
因此,您可以启用流缓存,以允许Camel再次重新读取流。请参阅此常见问题解答和链接中的更多内容
你也可以把它分成2条路线
from amq
to file
from file
unmarshal