我需要读取XML文件的内容并通过转换消息组件将其设置为有效负载 我按照下面的方法做了,但出现了如下错误
数据编织脚本
%dw 2.0
output application/xml
---
Mule::p('file::src/test/resources/inbound.xml')
错误
""Trying to output non-whitespace characters outside main element tree (in prolog or epilog), while writing Xml at ." evaluating expression: "%dw 2.0
output application/xml
---
Mule::p('file::src/test/resources/inbound.xml')"."
我认为如果我将输出设置为 java 而不是 xml,它可以消除错误。但输出类型将是java,我需要通过另一个额外步骤将其转换为xml。我是 mulesoft 的新人。任何想法或提示都表示赞赏。
使用 p() 函数根本没有意义。该函数用于读取 Mule 应用程序中定义的属性值(请参阅https://docs.mulesoft.com/mule-runtime/latest/configuring-properties),这是一个不同的用例。
您可以使用 readUrl() 函数来读取文件的内容。但是您应该注意一些注意事项。您不应引用项目源目录中的任何内容。这在开发过程中可能有效,但在部署到独立的 Mule 服务器时,src 目录甚至不存在。并且不要使用 file: URL,因为 Mule 应用程序会打包到 JAR 文件中。
而是使用
classpath:
模式并引用相对于 resource
目录的文件。
示例:
readUrl("classpath://inbound.xml", "application/xml")