【问题标题】:Validating wsdl and schema without internet in mule esb standalone在独立的mule esb中验证没有互联网的wsdl和模式
【发布时间】:2016-05-27 22:30:22
【问题描述】:

我有一个公开 SOAP Web 服务(使用 CSIO 模式)的 esb 应用程序。 以下是我的 wsdl 中的 sn-p:

<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.CSIO.org/standards/PC_Surety/CSIO4.3.0/xml/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="MyService" targetNamespace="http://www.CSIO.org/standards/PC_Surety/CSIO4.3.0/xml/" xmlns:ns0="http://www.ACORD.org/standards/PC_Surety/ACORD1.7.0/xml/">

在我使用 AnyPoint Studio 的桌面上启动时没有任何问题。当我在基于 linux 的独立服务器中部署时,我遇到了这个问题。

以下启动日志来自我的一个较低环境。看起来骡子要上网来验证命名空间。

信息 [WrapperListener_start_runner] ? (:) - 初始化服务:MyFlowWebservice.stage1 信息 [WrapperListener_start_runner] ? (:) - 从 WSDL 创建服务 {http://www.CSIO.org/standards/PC_Surety/CSIO4.3.0/xml/}MyService:classpath:MyService.wsdl

当我进入服务器无法访问互联网的更高环境时,我看到的是以下内容

信息 [WrapperListener_start_runner] ? (:) - 初始化服务:MyFlowWebservice.stage1 警告 [WrapperListener_start_runner] ? (:) - 上下文初始化期间遇到异常 - 取消刷新尝试 org.springframework.beans.factory.BeanCreationException:创建名为“MyFlowWebservice”的bean时出错:调用init方法失败;嵌套异常是 org.mule.api.lifecycle.InitialisationException: SERVICE_CREATION_MSG 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1514) ~[?:?] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) ~[?:?]

.....

....

.....

....

原因:javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema/xsd:schema/xsd:schema/xsd:schema): faultCode=PARSER_ERROR: Problem parsing 'file: /opt/mule/myesb/apps/myesb-1.0-SNAPSHOT/classes/schemas/xml-ns.xsd'.: java.net.ConnectException: 连接被拒绝 在 com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(Unknown Source) ~[?:?] 在 com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(Unknown Source) ~[?:?] 在 com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(Unknown Source) ~[?:?]

目前还不能开放访问互联网。我不确定要尝试什么,因为我对 XML 命名空间知之甚少。关于如何避免这个问题的任何建议?

【问题讨论】:

  • 这个文件是否存在于你部署到'file:/opt/mule/myesb/apps/myesb-1.0-SNAPSHOT/classes/schemas/xml-ns.xsd'的linux机器上
  • 是的,它确实存在。问题出在该文件所指的 dtd 上。我下载了文件并让 xsd 使用该文件并修复了它。我已经在下面给出了答案。谢谢

标签: xsd wsdl mule xml-namespaces esb


【解决方案1】:

我找到了解决方案。

其中一个架构文件中有这一行 - xml-ns.xsd:

<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd">

我将 XMLSchema.dtd 下载到其他架构文件所在的同一文件夹中,并将“http://www.w3.org/2001/XMLSchema.dtd”行替换为“XMLSchema.dtd”

【讨论】:

    猜你喜欢
    • 2016-07-28
    • 1970-01-01
    • 2019-05-13
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多