import - 在 Spring WS 中转换 XSD 导入以用于 WSDL

标签 import xsd wsdl transform spring-ws

我正在尝试扩展 Spring WS 指南第 5 章中的示例。我正在使用 Spring WS 1.5.9 。

我添加了...

<import namespace="http://myco.com/schemas/promotion/v1_2"
    schemaLocation="http://localhost:8080/ordersService/Promotion_1_2.xsd" /> ...

但是 spring 似乎并没有像端口那样改变导入的位置。所以在我的公司网站上它仍然显示“localhost:8080”

我已经这样定义了 WSDL 生成

<bean id="orders" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
    <property name="schema" ref="schema" />
    <property name="portTypeName" value="Orders" />
    <property name="locationUri" value="http://localhost:8080/ordersService/" />

Spring Framework 是否/可以以某种方式转换导入???

更新:更多背景信息......

我们使用与 maven JaxB2 插件相同的 XSD 来构建我们的响应模式对象。一切都很好,我们使用目录解析器在包含的 JAR 文件中实际查找附加业务域 XSD。我们有 100 个 XSD 来描述我们的业务领域。

所以我尽量不打破这一点。

我想看到的是更详细的示例。使用 JaxB2 和 XSD -> WSDL 功能的示例。

我应该重构 XSD 吗? 我应该使用 WSDL 而不是 XSD 如何正确识别要启动的 XSD? 我是否使用“classpath:My_file.xsd”?我是否必须向 schemaCollection 列出可能有 100 个 XSD?

spring 文档很棒,但我想要一个匹配的实际示例。

最佳答案

我想添加有关我们最终得到的解决方案的详细信息。我们已经转向 Spring WS 2x。这是更新的链接...

http://static.springsource.org/spring-ws/site/reference/html/server.html#server-automatic-wsdl-exposure

技巧/关键在于该部分,它说...“如果您想通过包含或导入来使用多个模式,您将需要放置 Commons XMLSchema”

这就是将其添加到我们项目中的最终答案。

<dependency>
     <groupId>org.apache.ws.commons.schema</groupId>
     <artifactId>XmlSchema</artifactId>
     <version>1.4.7</version>
</dependency>

现在 spring 启用了额外的功能来允许类路径解析工作。

关于import - 在 Spring WS 中转换 XSD 导入以用于 WSDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5454517/

相关文章:

perl - 将 MooseX::Method::Signatures 导入调用者的作用域

python - 使用点符号导入自定义包的子模块?

java - Eclipse/Java 新手 : package not found now, 但那是昨天

java - 如何从实现可序列化的 XSD 生成类?

web-services - 如何查找wsdl版本

python - 尽管已导入其包,但访问 Python 模块失败

java - 使用 JDK 1.4.x 引用 xml 模式

xml - 使用 XML 模式进行条件验证

php - WSDL 中的数组响应 - SOAP PHP

c# - 从文件目录添加 WSDL 文件