我可以在 mule3 的组件中获取像 #[header:originalFilename] 这样的文件名吗

发布于 2024-12-12 22:39:39 字数 163 浏览 0 评论 0原文

<gzip-compress-transformer/>
<base64-encoder-transformer/>

在文件连接器之后使用,然后编写一个组件来处理gzip+base64内容。 如何获取组件中的文件名?

I use

<gzip-compress-transformer/>
<base64-encoder-transformer/>

after a file connector, and then write a component to deal with the gzip+base64 content.
How can i get the file name in the component?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

○闲身 2024-12-19 22:39:39

请注意,我们在 Mule 3 中引入了注释来进行运行时注入,这意味着您可以指定如何调用组件而无需变压器,即

public void save(@Payload String fileContents, @InboundHeaders("originalFilename") StringoriginalFilename)

请参阅: http://www.mulesoft.org/documentation/display/MULE3USER/Creating+Service+Objects+and+Transformers+Using+Annotations

Note that we introduced annotations in Mule 3 for doing runtime injection, this means you can specify how to invoke a component without needing transformers i.e.

public void save(@Payload String fileContents, @InboundHeaders("originalFilename") String originalFilename)

See: http://www.mulesoft.org/documentation/display/MULE3USER/Creating+Service+Objects+and+Transformers+Using+Annotations

盛装女皇 2024-12-19 22:39:39

您的组件是否实现 可调用?如果不是,你想让你的组件 Mule 不知道吗?

根据您对这些问题的回答,存在不同的选项:

  • 使用 Callable,您可以在 message.getProperty 中获取标头...
  • 如果不实现 Callable,您可以访问 RequestContext 以获取当前的 Mule 事件,并从那里访问消息属性。但这会让你的组件 Mule 意识到。
  • 否则,让组件的方法采用第二个参数(字符串originalFilename)并使用标准表达式转换器将有效负载转换为包含:#payload、#[header:originalFilename] 的数组。然后,该数组将作为参数传递给组件的方法。

Does your component implement Callable? If not, do you want to keep your component Mule-unaware?

Based on your answers to these questions, different options exist:

  • With Callable, you get the headers in message.getProperty...
  • Without implementing Callable, you can access RequestContext to get the current Mule event and from there reach the message properties. But this makes your component Mule aware.
  • Otherwise, have your component's method take a second parameter (String originalFilename) and use a standard expression transformer to transform the payload in an array that contains: #payload, #[header:originalFilename]. This arrays will then be passed as arguments to your component's method.
浅忆 2024-12-19 22:39:39

[message.outboundproperties[originalFilename]]

通过此表达式可以获取组件中的原始文件名。

[message.outboundproperties[originalFilename]]

with this expression you can get the original file name in the component.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文