【问题标题】:WSO2 ESB Writing XML file with xml tagWSO2 ESB 使用 xml 标签编写 XML 文件
【发布时间】:2015-11-25 13:10:50
【问题描述】:

我已经使用 xslt 中介将一个 xml 文件转换为另一个 xml,然后我使用 vfs 编写该文件来创建 .xml 文件,一切似乎都正常。但我想在文件开头添加以下标签:

<?xml version="1.0" encoding="UTF-8"?>

我尝试过使用这个属性:

<property name="messageType" value="text/xml" scope="axis2" type="STRING"/>

它也将肥皂信封添加到文件中,这不是必需的。

有什么建议吗?我正在使用 esb 4.8.0

【问题讨论】:

  • 可以分享完整的meditor
  • 尝试从 XSLT 顶部添加第二个:&lt;xsl:output version="1.0" encoding="UTF-8" omit-xml-declaration="no" indent="yes" /&gt;
  • 我试过 xs:output 但它不起作用,因为 esb 会创建这样的消息:xml 标签 ---- soap 信封 --- 转换的消息 --- end soap 标签

标签: xml xslt wso2 wso2esb vfs


【解决方案1】:

xml 文件我尝试从本地系统传输到 SFTP 文件夹。 XML 文件已传输,但 xml 文件没有 xml encoding(),因为 wso2esb4.8.1 删除了该编码标记。所以我使用下面的选项来保留 xml 编码标签。

参数名称="transport.vfs.FileNamePattern as (..)

参数名称="transport.vfs.ContentType" as (text/plain)

在您的代理文件中更改这些行。 它对我有用。

【讨论】:

    【解决方案2】:

    使用不同的 mime 类型(即application/xml):

    <property name="messageType" value="application/xml" scope="axis2" type="STRING"/>
    

    【讨论】:

      【解决方案3】:

      当从 ESB 发送消息时,消息格式化程序用于构建传出流。消息格式化程序是根据消息的内容类型选择的。

      如果要将消息转换为 XML,可以在配置中的发送中介之前添加以下 messageType 属性。

      <property name="messageType" value="application/xml" scope="axis2"/>
      

      当使用 value="text/xml" 添加 messageType 属性时,SOAP Formatter 将用于构建您的传出流(“org.apache.axis2.builder.SOAPBuilder”)。这就是为什么您会看到一个 SOAP 信封作为结果。

      更多信息 - Working with Message Builders and Formatters

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多