Xsd 在mule esb standalone中验证无internet的wsdl和模式

Xsd 在mule esb standalone中验证无internet的wsdl和模式,xsd,wsdl,mule,xml-namespaces,esb,Xsd,Wsdl,Mule,Xml Namespaces,Esb,我有一个esb应用程序,它公开了一个SOAP web服务(使用CSIO模式)。 以下是我的wsdl中的代码片段: <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="ht

我有一个esb应用程序,它公开了一个SOAP web服务(使用CSIO模式)。 以下是我的wsdl中的代码片段:

<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的独立服务器上部署时,我遇到了这个问题

以下启动日志来自我的一个较低级别环境。mule似乎要去internet验证名称空间

信息[WrapperListener\u start\u runner]?(:)-初始化服务:MyFlowWebservice.stage1 信息[WrapperListener\u start\u runner]?(:)-从WSDL:classpath:MyService.WSDL创建服务{}MyService

当我进入服务器无法访问internet的高级环境时,我看到的是

信息[WrapperListener\u start\u runner]?(:)-初始化服务:MyFlowWebservice.stage1 警告[WrapperListener\u start\u runner]?(:)-上下文初始化期间遇到异常-取消刷新尝试 org.springframework.beans.factory.BeanCreationException:创建名为“MyFlowWebservice”的bean时出错:调用init方法失败;嵌套异常是org.mule.api.lifecycle.InitialisationException:SERVICE\u CREATION\u 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\u ERROR:Problem解析“文件:/opt/mule/myesb/apps/myesb-1.0-SNAPSHOT/classes/schemas/xmlns.xsd.”:java.net.ConnectException:connect拒绝连接 在com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(未知源)~[?:?] 在com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(未知源)~[?:?] 在com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(未知源)~[?:?]


在这一点上,开放互联网接入不是一个选项。我不知道该尝试什么,因为我对XML名称空间知之甚少。有没有关于如何避免这个问题的建议

我找到了解决办法

在一个模式文件xml-ns.xsd中有一行:

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


我将XMLSchema.dtd下载到其他模式文件所在的同一文件夹中,并将行“”替换为“XMLSchema.dtd”

此文件是否存在于您部署到的linux计算机上“file:/opt/mule/myesb/apps/myesb-1.0-SNAPSHOT/classes/schemas/xml ns.xsd”是的,它确实存在。问题在于该文件所引用的dtd。我下载了该文件,并使xsd使用该文件,从而修复了它。我已经给出了下面的答案。谢谢