【问题标题】:Mule soap Proxy wsdl fails at relative path resolution of xsdMule soap 代理 wsdl 在 xsd 的相对路径分辨率下失败
【发布时间】:2014-07-31 18:40:14
【问题描述】:

我有一个 WSDL 和一个使用 MuleSoft XML Only SOAP Web Service 示例的 Mule SOAP 代理 Web 服务。 我的应用程序运行良好,但如果我启用验证,我会遇到一个问题:当 XSD 存储在项目根目录以外的任何位置时,它将无法解决。 我在 /src/main/resources 中创建了服务和 xsd 文件夹, 但是,当调用该服务时,我收到以下错误:

    connector.http.mule.default.receiver.02] org.apache.cxf.wstx_msv_validation.ResolvingGrammarReaderController: D:\Developer\Global\BODs\GetListSalesOrder.xsd (The system cannot find the path specified) 
java.io.FileNotFoundException: D:\Developer\Global\BODs\GetListSalesOrder.xsd (The system cannot find the path)

这是我的骡流..

<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="test" doc:name="HTTP"/>
        <cxf:proxy-service port="SyncSalesOrderBinding" namespace="http://www.cg.com/services/oagis/salesOrder" service="SyncSalesOrderService" validationEnabled="true" payload="body" wsdlLocation="services/WebServices/WSDL/SalesOrder.wsdl" doc:name="CXF">
            <cxf:schemaLocations>
                <cxf:schemaLocation>services/Developer/Global/BODs/GetListSalesOrder.xsd</cxf:schemaLocation>
            </cxf:schemaLocations>
        </cxf:proxy-service>
        <logger message="Success" level="INFO" doc:name="Logger"/>

【问题讨论】:

  • 您的 xsd 存放在哪个文件夹中?是直接在 /src/main/resources 文件夹中吗?或者你是否在 /src/main/resources 文件夹中创建了任何文件夹,然后将 xsd 保存在它下面?
  • 我在 /src/main/resources..src/main/resources/services/Developer/Global/BODs/GetListSalesOrder.xsd 中创建了文件夹
  • 文件夹名称是什么?
  • src/main/resources/services/Developer/Global/BODs/GetListSa‌​lesOrder.xsd
  • 什么是您的 Mule Flow .. 请使用您的 Mule 配置更新您的问题,以便解决问题..

标签: web-services soap wsdl cxf mule


【解决方案1】:

如果你的 XSD 文件被导入到你的 wsdl 文件中,下面的代码就可以了:-

<cxf:proxy-service port="SyncSalesOrderBinding" namespace="http://www.cg.com/services/oagis/salesOrder" service="SyncSalesOrderService" validationEnabled="true" payload="body" wsdlLocation="services/WebServices/WSDL/SalesOrder.wsdl" doc:name="CXF"/>

您无需在 CXF 组件中提及您的 XSD 文件。它会验证

如果您仍然遇到任何问题,那么这里有可用的补丁:https://www.mulesoft.org/jira/browse/MULE-5963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

....请将您的 jar 替换为 JIRA 上的那个...它肯定会工作

【讨论】:

  • 嘿兄弟..它不起作用...实际上我在 D 驱动器上手动复制了所有 xsd..所以 xsd 从那个位置获取..
  • 我复制了 D:\Developer\Global\BODs\ 中的所有 xsd...所以从这个位置获取的所有 xsd...我希望所有 xsd 自动从 Mule 应用程序文件夹中获取..跨度>
  • 如果您将 wsdl 和 xsd 复制并粘贴到 main/resource 文件夹中,它将正常工作
  • 您将 xsd 和 wsdl 文件保存在哪里...在此处给出完整路径...您的 xsd 和 wsdl 在同一路径中吗?如果您的 xsd 和 wsdl 在同一路径中.. 在您的 wsdl 中,您应该从同一路径导入它
  • No..then it give me exception..java.io.FileNotFoundException: D:\Developer\Global\BODs\GetListSalesOrder.xsd(系统找不到路径)
猜你喜欢
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
相关资源
最近更新 更多