java - 当功能 "http://apache.org/xml/features/disallow-doctype-decl"设置为 true 时,不允许获取 DOCTYPE

标签 java soap wsdl wsimport

我懂了

DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true
line 1 of https://core4.gatewayedi.com/v1/caqhcoreiv/caqhcorev4.svc?wsdl

使用 wsimport 从 wsdl 文件生成 Java 类时出错。

此问题有任何解决方法或解决方案吗,特别是在使用 wsimport 时?

以下是我使用的命令以及从 wsimport 获得的完整响应:

wsimport" -Xnocompile -extension -clientjar my.jar -d . -generateJWS https://core4.gatewayedi.com/v1/caqhcoreiv/caqhcorev4.svc?wsdl   

正在解析 WSDL...

[错误] 当功能“http://apache.org/xml/features/disallow-doctype-decl”设置为 true 时,不允许使用 DOCTYPE。 https://core4.gatewayedi.com/v1/caqhcoreiv/caqhcorev4.svc?wsdl 第 1 行

[错误] 当功能“http://apache.org/xml/features/disallow-doctype-decl”设置为 true 时,不允许使用 DOCTYPE。

无法读取 WSDL 文档:https://core4.gatewayedi.com/v1/caqhcoreiv/caqhcorev4.svc?wsdl ,因为1)找不到文档;/2) 无法读取文档; 3) 文档的根元素不是 wsdl:definitions。

[错误] 在提供的 WSDL 中找不到 wsdl:service:

需要提供至少一个包含至少一个服务定义的 WSDL。

无法解析 WSDL。

下载 WSDL 和关联的元数据

    Exception in thread "main" java.lang.IllegalStateException: DOMStreamReader: Calling next() at END_DOCUMENT
    at com.sun.xml.internal.ws.streaming.DOMStreamReader._next(DOMStreamReader.java:764)
    at com.sun.xml.internal.ws.streaming.DOMStreamReader.next(DOMStreamReader.java:737)
    at com.sun.xml.internal.ws.util.xml.XMLStreamReaderToXMLStreamWriter.bridge(XMLStreamReaderToXMLStreamWriter.java:92)
    at com.sun.tools.internal.ws.util.WSDLFetcher.fetchFile(WSDLFetcher.java:121)
    at com.sun.tools.internal.ws.util.WSDLFetcher.fetchWsdls(WSDLFetcher.java:86)
    at com.sun.tools.internal.ws.wscompile.WsimportTool.buildWsdlModel(WsimportTool.java:437)
    at com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:190)
    at com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:168)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:159)
    at com.sun.tools.internal.ws.WsImport.main(WsImport.java:42)

最佳答案

看起来 wsimport 命令的行为区分大小写。这个answer提到了类似的事情。

客户端是使用(wsimport 与 Oracle JDK 版本 1.8.0_202-b08 捆绑在一起)生成的:

wsimport -Xnocompile -extension -clientjar my.jar -d 。 -generateJWS https://core4.gatewayedi.com/V1/CAQHCoreIV/caqhcoreV4.svc?wsdl

主要区别在于 URL 中区分大小写。网址https://core4.gatewayedi.com/V1/CAQHCoreIV/caqhcoreV4.svc?wsdl火柴 与 WSDL 文件中的 location 条目。

关于java - 当功能 "http://apache.org/xml/features/disallow-doctype-decl"设置为 true 时,不允许获取 DOCTYPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60327377/

相关文章:

vb.net - 调用带有客户端证书错误的 SOAP Web 服务 - 从服务器收到的身份验证 header 为 ''

c# - 如何对 SoapExtension 派生类进行单元测试?

xml - 在 wsdl 中的什么地方放置版本信息?

wsdl2java 客户端 stub 仅用于 wsdl 支持的某些操作?

c# - 如何在Windows 10下安装svcutil.exe

java - 如何使用 java web 服务获得复杂的 SOAP 响应?

java - Gradle 忽略 testng 中的优先级

java - 无法使用版本 4 生成范围报告

java - 如何将 DefaultTableModel 对象的数据放入 DefaultTableModel 的子类中

java - 在 JAVA 中针对很长的请求实现 SOAP 客户端的良好实践?