我懂了
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/