You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用SOAP WSDL触发文件提前结束错误,寻求解决办法

解决SOAP WSDL调用时无法读取W3C Schema的问题

错误信息

[ERROR] 文件提前结束。
第1行,来自http://www.w3.org/2005/05/xmlmime

[ERROR] org.xml.sax.SAXParseException; systemId: http://www.w3.org/2005/05/xmlmime; lineNumber: 1; columnNumber: 1; 文件提前结束。
第1行,来自https://*********************************-soap/soap02?wsdl

解决方案

  • 本地缓存Schema文件
    手动下载http://www.w3.org/2005/05/xmlmime对应的XSD文件到本地,修改WSDL中的schema引用,将远程地址替换为本地文件路径。例如把:

    <import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="http://www.w3.org/2005/05/xmlmime"/>
    

    改成:

    <import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="file:///本地路径/xmlmime.xsd"/>
    
  • 关闭远程Schema自动加载
    在XML解析器中禁用外部Schema加载。比如Java环境下,给SAXParser设置特性:

    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
    

    soapUI里可以在File > Preferences > XML Settings中找到相关选项,关闭远程Schema验证或加载。

  • 排查网络拦截
    确认所在环境的代理、防火墙是否屏蔽了对w3.org的HTTPS请求。企业内网通常会拦截这类外部公共资源,需要将http://www.w3.org加入白名单,或者配置正确的代理参数让解析器正常访问。

  • 通过绑定文件指定本地Schema
    若用Java生成客户端(如jaxws-maven-plugin),创建binding.xml绑定文件,将远程Schema映射到本地资源:

    <jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <jaxws:bindings schemaLocation="http://www.w3.org/2005/05/xmlmime">
            <xsd:appinfo>
                <jaxws:package name="org.w3._2005._05.xmlmime"/>
            </xsd:appinfo>
        </jaxws:bindings>
    </jaxws:bindings>
    

    将xmlmime.xsd放到项目resources目录,插件会自动读取本地文件。

  • 用XML Catalog映射远程地址
    创建OASIS格式的catalog.xml文件,把远程Schema地址映射到本地:

    <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
        <rewriteURI uriStartString="http://www.w3.org/2005/05/xmlmime"
                    rewritePrefix="file:///项目路径/src/main/resources/schemas/"/>
    </catalog>
    

    执行wsimport时加上-catalog参数:

    wsimport -catalog catalog.xml https://你的WSDL地址?wsdl
    

内容的提问来源于stack exchange,提问作者Saverio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 10:48:35