gpt4 book ai didi

java - 如何从基于 WSDL 的 Web 服务中提取详细的架构信息?

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

假设我正在为一个已知的、基于 WSDL 的 Web 服务开发一个客户端(我无法获得其源代码):

有没有一种方法可以在 运行时 根据该 WSDL 中的内联 架构验证各种字段(例如,字符串长度不超过限制)?

如果是这样,我如何与该 Web 服务交互以获取其内联 XSD 信息?

最佳答案

如果你想让它真正动态化,那么你必须假设你可以访问 WSDL 的 URI,以及 WSDL 可能使用的所有其他外部引用,以访问其他 WSDL 文件和/或 XSD 文件。

第一步,您必须将文件下载到临时文件夹,或为这些 URI 创建 I/O 流以进行内存加载,以加载模式(javax.xml.validation.Schema)。我不知道有一个 Java API 可以使这项任务变得简单(从 WSDL 引用中获取一个模式,例如 .NET 平台上的开发人员可用的模式)——希望如果有的话,有人可能会插话。否则,它写一个应该不难。

我必须警告您,许多人可能认为这(加载外部 URI,尤其是指向 Internet 的 URI)是生产环境中的安全问题,因此请谨慎设计。既然你说的是“一个已知的、基于 WSDL 的 Web 服务”,我可能会在设计时获取 XSD,并将它们作为资源捆绑在我的 Jar 文件中,这些文件将与客户端代码一起使用。

接下来是如何创建 XML...假设您正在使用诸如 JAXB 之类的东西,然后是诸如 this one 之类的帖子将给出如何解决您的问题的想法,以及您究竟需要验证什么。如果您不使用 JAXB,那么探索您的 API 在做什么,以及它实际上如何允许您插入验证...

我希望这至少能让您了解在此类问题中需要了解哪些细节,以获得更具体的答案。

关于java - 如何从基于 WSDL 的 Web 服务中提取详细的架构信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882665/

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