gpt4 book ai didi

java - 使用 Spring WS 发布静态 WSDL 和相关的 XSD 模式

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:56:35 24 4
gpt4 key购买 nike

我有一个模块,其中有我的 XSD 架构,其中一个架构可以使用架构位置内的相对路径引用另一个架构:

<xs:import namespace="http://my.namespace.org" schemaLocation="../mypackage/my.xsd"/>

在这里,我还使用 xjc 从这些 xsd 模式生成 Jaxb bean。

现在我有一个模块,其中使用 spring-ws (2.0.4) 实现了我的 Web 服务。我想使用 static WSDL 并使用 xsd 架构发布它,其中架构位置将转换为 URL,如“http://myerver.url.com/my.xsd”。

问题是如何优雅地实现这一点?

(或者将 XSD 组合成一个模式,然后将其组合到 WSDL)

(理论上我可以使用脚本转换这些 XSD,并将它们添加到资源(xsd 和 wsdl)到(spring dispatcher)servlet,但在我看来这不太舒服)

最佳答案

实际上,Spring Web 服务有一种优雅的方式来做到这一点。您需要做的就是在 bean 定义 xml 文件中定义一个具有正确 id 的 SimpleXsdSchema bean(它将用作没有 .xsd 的 xsd 名称),如下所示

<bean id="my" 
class="org.springframework.xml.xsd.SimpleXsdSchema">
<property
name="xsd"
value="/mypackage/my.xsd">
</property>
</bean>

更多信息(包括示例)可在以下链接中找到: Static WSDL with imported XML Schema in Spring Web Service

关于java - 使用 Spring WS 发布静态 WSDL 和相关的 XSD 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9531159/

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