gpt4 book ai didi

来自 wsdl 的 Java.xml.validation.Schema

转载 作者:太空宇宙 更新时间:2023-11-04 12:52:08 25 4
gpt4 key购买 nike

所以我在 NetBeans 8.1 中有一个 Web 服务,我为其编写了带有嵌入式 XSD 的 wsdl(还有一个外部引用)。现在我需要能够在应用程序的其他实例上调用 SOAP 服务:即让实例 X 调用实例 Y 上的方法,作为应用程序的次要目标。我不喜欢使用 NetBeans 自动 SOAP 客户端向导,因为我会指出我正在构建的服务 - 在构建过程中它可能是先有鸡还是先有蛋的问题。其次,我已经拥有 Web 服务使用的所有必需的 JAXB 类型,因此构建客户端应该很容易,对吗?

当我想使用 JAXB 将请求对象编码到 javax.xml.soap.SOAPBodyElement 时,我的麻烦就开始了(我当前的策略是对客户端部分使用 SAAJ),但是如何向编码器添加架构?该架构嵌入在 wsdl 中,我不知道如何引用它。我认为我可以将架构部分拆分为一个单独的 XSD 文件,但我缺少 @WebService 的注释选项,我可以在其中提供 XSD 文件,就像我可以提供 wsdl 文件一样(当前“wsdlLocation”在嵌入时同时指向 wsdl 和 xsd)。

我想我可能不得不忍受不在客户端进行 XSD 验证(它在服务器端启用),因为从 wsdl 获取 Schema 对象似乎很棘手 - 这可能以某种方式实现吗?

最佳答案

您可以将 .wsdl 作为 InputStream 读取并将其转换为 DOMResult。然后,您可以从 DOMResult 获取“schema”节点并将其转换为 DOMSource。这样,您就可以使用 Source[] 构造函数创建一个 Schema 对象。

我自己还没有让它工作,我有太多的导入,管理命名空间变得很困难。我在这方面找到的唯一代码是 Mark Hansen 的“SOA using Java Web Services”,第 7.5.1 章:验证。我不认为我可以将该代码放在这里,但该用例所需的所有代码都在那里。

关于来自 wsdl 的 Java.xml.validation.Schema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35717022/

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