gpt4 book ai didi

java - wsimport 无法解析 WSDL(架构文件上的文件过早结束)

转载 作者:行者123 更新时间:2023-11-30 06:05:25 25 4
gpt4 key购买 nike

如果这是一个重复的问题,我深表歉意 - 我查找了相当多的文件并发现了很多类似的问题,但没有一个与此完全相同。

我正在尝试使用 wsimport 为具有在此 URL 指定的 WSDL 的 Web 服务生成 Java 客户端绑定(bind):https://api.dss.gov.au/datacollection/dex?wsdl但是,我不断收到这样的错误:

[错误] 文件过早结束。 http://api.dss.gov.au/datacollection/dex?WSDL&type=XSD&file=file%3A%2FC%3A%2Ftfs%2FCCSApps%2FDataCollection%2FBranches%2FMR17.11%2FOSB%2FDataCollection.Assessment%2FResources%2FSchema%2FAssessment.External.xsd 第 1 行

[错误] org.xml.sax.SAXParseException;系统ID:http://api.dss.gov.au/datacollection/dex?WSDL&type=XSD&file=file%3A%2FC%3A%2Ftfs%2FCCSApps%2FDataCollection%2FBranches%2FMR17.11%2FOSB%2FDataCollection.Assessment%2FResources%2FSchema%2FAssessment.External.xsd ;行号:1;列数:1;文件提前结束。 https://api.dss.gov.au/datacollection/dex?wsdl 第 2 行

尝试下载/解析 WSDL 中列出的第一个架构文件时失败。

我在 Windows 10 上运行它。我尝试过 JDK 1.8 和 Java 9。我尝试使用 Eclipse Web Developer Tools、使用 jaxws-maven-plugin 以及直接使用 wsimport 来生成它 - 它们全部因同样的错误而失败。因此,该错误可能与核心 jax-ws 实现有关,而不是与任何包装器有关。

我已将架构 URL 插入浏览器窗口(与我的开发人员在同一台计算机上)并验证它是否可以正确下载。乍一看,它似乎是一个格式良好的架构文件 - 它肯定不是零长度,正如此错误所暗示的那样。

考虑到这可能是一个权限问题,我尝试了这个问题中建议的修复:WebService Client Generation Error with JDK8不幸的是,它们也不起作用。

我尝试将 WSDL 和有问题的架构文件下载到本地目录,然后更新 WSDL 中的架构链接以指向架构文件的本地副本。这似乎确实解决了问题 - 但是,它在下一个架构文件上失败了。我开始手动下载本地架构文件并更新链接,但似乎有数十个架构文件。如果 API 发生变化,这似乎也不是针对此 Web 服务进行开发的可持续方式。

这个问题的答案可能包括以下任意内容:

  1. 告诉我我做错了什么导致了这个错误,并允许我修复它以自动从此 WSDL 生成 Java 绑定(bind)。
  2. wsimport 的免费替代工具,可实现相同的功能。
  3. 引用 wsimport 的错误报告,显示这是一个尚未解决的已知问题。

最佳答案

我在 XML 编辑器中打开了有问题的 XSD 文件,它显示 对实体“类型”的引用必须以“;”结尾分隔符。& 和符号在架构导入中不会转义,并且在所有其他架构导入中也是如此。 &type=XSD&file=文件

这取决于 WSDL 作者是否转义 & 符号或删除 XSD 文件中导入中的可选 typefile 实体,这样就可以解决问题。

关于java - wsimport 无法解析 WSDL(架构文件上的文件过早结束),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51437600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com