入站通道适配器本地目录和消息
inbound-channel-adapter local-directory & message
我们有 Web 应用程序,想使用 ftp:inbound-channel-adapter 从 ftp 读取文件并创建消息并将其发送到频道
- 当 local-directory 设置为 local-directory="#servletContext.getRealPath('')}/temp/inFtp" 它给出
生成的消息是
GenericMessage [payload={applicationDeployPath}\temp\inFtp\xyz.stagging.dat, headers={timestamp=1444812027516, id=9b5f1581-bfd2-6690-d4ea-e7398e8ecbd6}]
但是没有创建目录,我检查过我在这里有完全权限。
路径 [{applicationDeployPath}\temp\inFtp] 不表示可正确访问的目录。
在消息中,我想根据环境从 属性 文件中发送更多字段作为有效负载,我该怎么做?
<int-ftp:inbound-channel-adapter id="ftpInboundAdaptor"
channel="ftpInboundChannel"
session-factory="ftpClientFactory"
filename-pattern="*.stagging.dat"
delete-remote-files="false"
remote-directory="/stagging/"
local-directory="#servletContext.getRealPath('')}/temp/inFtp"
auto-create-local-directory="true">
<int:poller fixed-rate="1000"/>
</int-ftp:inbound-channel-adapter>
提前致谢
local-directory
仅在初始化时评估一次(并在必要时创建),而不是针对每条消息。
我很惊讶上下文甚至初始化了;这个语法看起来很糟糕:
local-directory="#servletContext.getRealPath('')}/temp/inFtp"
如果你的意思是
local-directory="#{servletContext.getRealPath('')}/temp/inFtp"
它只有在你有一些名为 servletContext
的 bean 时才有效。
如果你的意思是
local-directory="#servletContext.getRealPath('')/temp/inFtp"
您需要在评估上下文中使用一个变量 servletContext
。
it gives Message generated is GenericMessage [payload={applicationDeployPath}\temp\inFtp\xyz.stagging.dat, headers={timestamp=1444812027516, id=9b5f1581-bfd2-6690-d4ea-e7398e8ecbd6}]
如果它确实生成了该消息,它一定已经创建了该目录。
不清楚你的意思
I want to send some more fields as payload
有效负载是 File
.
如果您想将负载更改为包含文件和其他字段的其他内容,请使用转换器。
我们有 Web 应用程序,想使用 ftp:inbound-channel-adapter 从 ftp 读取文件并创建消息并将其发送到频道
- 当 local-directory 设置为 local-directory="#servletContext.getRealPath('')}/temp/inFtp" 它给出 生成的消息是 GenericMessage [payload={applicationDeployPath}\temp\inFtp\xyz.stagging.dat, headers={timestamp=1444812027516, id=9b5f1581-bfd2-6690-d4ea-e7398e8ecbd6}]
但是没有创建目录,我检查过我在这里有完全权限。 路径 [{applicationDeployPath}\temp\inFtp] 不表示可正确访问的目录。
在消息中,我想根据环境从 属性 文件中发送更多字段作为有效负载,我该怎么做?
<int-ftp:inbound-channel-adapter id="ftpInboundAdaptor" channel="ftpInboundChannel" session-factory="ftpClientFactory" filename-pattern="*.stagging.dat" delete-remote-files="false" remote-directory="/stagging/" local-directory="#servletContext.getRealPath('')}/temp/inFtp" auto-create-local-directory="true"> <int:poller fixed-rate="1000"/> </int-ftp:inbound-channel-adapter>
提前致谢
local-directory
仅在初始化时评估一次(并在必要时创建),而不是针对每条消息。
我很惊讶上下文甚至初始化了;这个语法看起来很糟糕:
local-directory="#servletContext.getRealPath('')}/temp/inFtp"
如果你的意思是
local-directory="#{servletContext.getRealPath('')}/temp/inFtp"
它只有在你有一些名为 servletContext
的 bean 时才有效。
如果你的意思是
local-directory="#servletContext.getRealPath('')/temp/inFtp"
您需要在评估上下文中使用一个变量 servletContext
。
it gives Message generated is GenericMessage [payload={applicationDeployPath}\temp\inFtp\xyz.stagging.dat, headers={timestamp=1444812027516, id=9b5f1581-bfd2-6690-d4ea-e7398e8ecbd6}]
如果它确实生成了该消息,它一定已经创建了该目录。
不清楚你的意思
I want to send some more fields as payload
有效负载是 File
.
如果您想将负载更改为包含文件和其他字段的其他内容,请使用转换器。