【发布时间】: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