使用 wso2 进行 XML 到 XML 转换

2023-12-03

我正在使用 wso2 esb 4.8.1。我正在尝试在 smooks 中介器的帮助下进行 xml 到 xml 的转换,但是当从 wso2 的应用程序部署控制台尝试它时,我收到以下异常,

[2014-11-07 09:39:20,401] ERROR - SmooksMediator Failed to filter source.
org.milyn.SmooksException: Failed to filter source.
    at org.milyn.delivery.sax.SmooksSAXFilter.doFilter(SmooksSAXFilter.java:86)
    at org.milyn.delivery.sax.SmooksSAXFilter.doFilter(SmooksSAXFilter.java:61)
    at org.milyn.Smooks._filter(Smooks.java:516)
    at org.milyn.Smooks.filterSource(Smooks.java:475)
    at org.wso2.carbon.mediator.transform.SmooksMediator.mediate(SmooksMediator.java:123)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131)
    at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:166)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:411)
    at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file.
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1236)
    at org.milyn.delivery.sax.SAXParser.parse(SAXParser.java:70)
    at org.milyn.delivery.sax.SmooksSAXFilter.doFilter(SmooksSAXFilter.java:75)
    ... 15 more
[2014-11-07 09:39:20,417] ERROR - NativeWorkerPool Uncaught exception
org.wso2.carbon.mediator.service.MediatorException: Failed to filter source. Caused by Failed to filter source.
    at org.wso2.carbon.mediator.transform.SmooksMediator.handleException(SmooksMediator.java:242)
    at org.wso2.carbon.mediator.transform.SmooksMediator.mediate(SmooksMediator.java:137)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131)
    at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:166)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:411)
    at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)

序列xml如下,

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="smooksTransService" transports="http https" startOnLoad="true" trace="disable">
    <target>
        <inSequence>
            <log level="full" separator=","/>
            <smooks config-key="gov:/_system/config/transforms/smooksconfig.xml">
                <input type="text"/>
                <output type="xml"/>
            </smooks>
            <log level="full" separator=","/>
            <drop/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </target>
</proxy>

下面是smooks的配置文件,

<?xml version="1.0" encoding="UTF-8"?><smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd">
  <params>
    <param name="stream.filter.type">SAX</param>
    <param name="inputType">input.xml</param>
    <param name="default.serialization.on">true</param>
    <param name="input.xml" type="input.type.actived">File:/C:\Shailesh\xmls\model-input.xml</param>
  </params>
  <ftl:freemarker applyOnElement="#document">
    <ftl:template><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<h:salesorder xmlns:h="http://www.w3.org/TR/html4/">
    <h:details>
        <h:orderid>${.vars["order"]["@id"]}</h:orderid>        
        <h:customer>
            <h:id>${.vars["order"]["header/customer/@number"]}</h:id>            
            <h:name>${.vars["order"]["header/customer"]}</h:name>            
        </h:customer>        
    </h:details>    
    <#list .vars["order"]["order-items"] as order_items>
    <h:itemList>
        <#list .vars["order_items"]["order-item"] as order_item>
        <h:item>
            <h:id>${.vars["order_item"]["@id"]}</h:id>            
            <h:productId>${.vars["order_item"]["product"]}</h:productId>            
            <h:quantity>${.vars["order_item"]["quantity"]}</h:quantity>            
            <h:price>${.vars["order_item"]["price"]}</h:price>            
        </h:item>
        </#list>        
    </h:itemList>
    </#list>    
</h:salesorder>]]></ftl:template>
    <param name="modelSrc">File:/C:\Shailesh\xmls\model-output.xml</param>
    <param name="modelSrcType">XML</param>
    <param name="mess![enter image description here][2]ageType">XML</param>
    <param name="templateDataProvider">input</param>
  </ftl:freemarker>
  <resource-config selector="#document">
    <resource>org.milyn.delivery.DomModelCreator</resource>
  </resource-config>
</smooks-resource-list>

我对代理服务的请求如附图所示。

enter image description here


我没有彻底浏览你的例子,但似乎错误在于斯莫克斯调解员找不到注册表资源。

指定 smooks config-key 属性时似乎存在问题。当你是与注册表合作,你需要知道有不同的注册表空间。

如果您通过“gov:”引用资源,则该资源将位于“/_system/governance”中。您需要使用“conf:”来引用“/_system/config”中的资源。

例如:如果您在“/_system/config/transforms/smooksconfig.xml”中有资源,则需要按如下方式引用它:

“conf:transforms/smooksconfig.xml”

相关问题:如何访问 WSO2 ESB 中的注册表

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 wso2 进行 XML 到 XML 转换 的相关文章

  • pmml:predict WSO2 流处理器不存在扩展

    我正在按照 WSO2 Stream Processor Studio 教程来练习 Siddhi 到目前为止 我已经成功解决了教程中包含的所有错误 然而 我被困在第 12 个教程 进行实时预测 中 Siddhi 应用程序是 App name
  • WSO2 API Manager 网关集群。如何在 api-manager.xml 中设置网关端点

    我计划在我的公司使用 WSO2 API 管理器 因此尝试使其能够集群工作 它由 Keymanager Gateway manager worker Publisher 2 个 AWS 实例上的 Store 组成 Host1包含Keymana
  • ActiveMQ:一条待处理消息,但队列为空

    我在使用 ActiveMQ 时遇到了一个奇怪的问题 我有一个队列 似乎有待处理的消息 但是当我打开队列时 没有消息 这里有什么问题吗 真的有消息待处理吗 我怎样才能取回消息或至少看到内容 Screenshot of the pending
  • 用于调用 wso2 安全 Web 服务的独立 java 代码

    我在 wso2esb 上有一个安全的 Web 服务 它基于用户名令牌 现在 我想创建一个独立的 java 程序来调用此 Web 服务 我很难弄清楚如何做到这一点 你能帮我一下吗 感谢致敬 通过这种方式访问 安全的Web服务 我假设你使用UT
  • WSO2 API Manager - 移动应用程序如何连接到 API Manager?

    我们有一个移动应用程序 需要通过 WSO2 API Manager 来访问一些 API 由于oauth2身份验证 我们需要在移动应用程序中存储用户名和密码 安全吗 例如 可以使用用户名和密码登录API Store 对于这种情况有其他解决方案
  • 如何使用 WSO2 API Manager 将租户设置为调解器中的标头

    我有一个 API 需要租户作为标头 如果我创建一个自定义顺序
  • WSO2 EI/ESB:For 循环实现

    我想实现一个简单的 for loop 在 WSO2 Integration Studio 中 例如 我正在实现一个巴士路线 API 每辆巴士有 10 个不同的站点 我想从后端服务获取 10 个站点 一个正常的 for 循环是 for i 0
  • OpenId Connect 与 wso2 仅返回子声明

    当我询问用户 WSO2 的信息时 响应仅包含他的子信息 Request GET https srv wso2 domain com 9443 oauth2 userinfo schema openid Request headers Acc
  • WSO2 API Manager 的跨域问题

    我们为客户开发了一些API 并通过API Manager发布了它们 我们为客户提供了一些运行良好的 PHP 代码示例 唯一的问题是他们通过 AJAX 在与 AM 相关的域不同的域中使用这些 API 这是跨域问题吗 我尝试使用以下标头在 AP
  • 无法通过 WSO2 API Manager 中的自定义中介流中的呼叫中介器

    在 WSO2 AM 1 10 中创建自定义中介流以实现 API 链接 作为第一步 我创建了此流程作为测试 它调用 REST 服务以生成令牌并将响应返回给客户端
  • WSO2 API 管理器 - 在商店中显示私有 IP

    我已经安装了 API 管理器 1 6 0 并运行了 API 管理器 但问题是商店内显示的 IP 地址是服务器的私有 IP 私有IP通过VPN访问 以下是在商店中显示为 生产 和 沙箱 URL 的 URL http 192 168 6 162
  • WSO2 ESB 中的跟踪日志文件

    在 WSO2 ESB 中 它到底显示 wso2 esb trace log 文件什么 什么时候有用 并且 与 WSO2 ESB 中的其他典型日志文件有何不同 例如 使用 wso2 esb service log 或 wso2 esb err
  • 在默认 WSo2 证书中用作通用名称的“Localhost”创建“未找到主题备用名称”

    我们使用 wso2 esb 版本 4 0 3 来公开我们的 Web 服务 我们的 Web 服务是使用 wso2 中的管理控制台添加为代理服务的 我们只想通过 https 公开 使用我们的 Web 服务 生成存根后 我们完成了以下操作 使用
  • WSO2 ESB 4.0.3 - 从 4.0.* 存储库安装数据服务功能时出错

    我下载了 WSO2 ESB 4 0 3 并将其解压到我的 MAC OSX 10 7 5 的 MAC book PRO 上 我通过管理 UI 添加了以下存储库 http dist wso2 org p2 carbon releases 4 0
  • 在 wso2 APIM 中以编程方式添加作用域

    我可以在 WSO2 APIM 中以编程方式创建范围吗 我有一个要求 用户可以通过 UI 创建新角色并将一些权限与新角色关联 用户不会使用 WSO2 Web 界面 相反 他将使用内部网络应用程序 为此 我必须以编程方式创建作用域并将 API
  • 为什么在 WSO2 中自定义 Axis2 版本?

    好吧 在为 WSO2 ESB 开发自定义传输时 建议我使用特定于 WSO2 的 Axis2 版本 1 6 1 wso2v5 有谁知道这个版本是否与 标准 1 6 1 版本有所不同 而这个 分支 的动机又是什么 AFAIK 这是因为 wso2
  • 仅获取 UserInfoEndpoint 中的 sub

    我只是关注上面的内容guide https docs wso2 com display IS520 Basic Client Profile with Playground 我已经填充了用户的个人资料信息 但到目前为止我只得到sub 我想要
  • 证书中的主机名不匹配:<>!=<> WSO2 APIM

    我有一个 https 端点 我需要从 wso2 API 管理器访问它 使用 1 10 我已经将证书文件添加到 client truststore jks 文件中 但现在它给出了如下错误 hostname in certificate did
  • 当实际端点关闭时,如何避免 wso2 esb 中的端点挂起

    我正在使用消息存储来存储消息 以防实际端点出现故障 我的代理使用 vfs 传输 即它将从文件中读取消息并传送到端点 如果端点出现故障 它会将消息存储在配置的 activemq 中 当我保留单个文件时 我的配置工作正常 在保留更多文件 即更多
  • WSO2 ESB 的自动 NTLM 身份验证

    我有一个 WCF Web 服务位于使用 NTLM 身份验证保护的客户端 IIS 服务器上 我无法控制该服务器上的身份验证配置 我需要将我的 WSO2 ESB 服务器与此服务集成 但我找不到让 ESB 自动进行身份验证的方法 我已成功通过 E

随机推荐