1
我想从S3存储下载的XML文件的XML文件,然后解组他们在数据库中插入数据:解组从Amazon S3下载与骆驼
...
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 [email protected] due javax.xml.stream.XMLStreamException:
java.io.IOException: Attempted read on closed stream.
由于我是新来的骆驼有可能的事情我还不明白...
- 当我管道端点时,当前端点是不是以前一个端点“修改”的方式得到消息呢?在我的情况下,它看起来像S3流正在编组,而不是从下载本地新创建的xml文件,因此错误。我的理解是如果我做.from()。()。to(),第二个.to()不知道什么是来自.from(),所以如果我的第一个.to()创建一个XML文件,第二个.to()将消息处理为xml文件。我错了吗?
- 也许我需要创建2条路线?尽管从数据库到文件到S3,我仍然可以用其他途径完成。
- 在这种情况下,我是否需要编写自己的转换器?
谢谢!
流工程,但是这意味着我的约。要假设()从前一个端点读取错误?因为我从.from()为第二个.to()缓存S3流,这意味着它从.from()中读取而不是从第一个.to()中创建的xml中读取。 –
文件只是写入文件,如果你做了一个http然后它的http服务器的响应是消息正文 –