在Spring中为WSDL转换XSD导入WS
问题描述:
我正在扩展Spring WS指南第5章中的示例。我使用Spring WS 1.5.9。在Spring中为WSDL转换XSD导入WS
我加...
<import namespace="http://myco.com/schemas/promotion/v1_2"
schemaLocation="http://localhost:8080/ordersService/Promotion_1_2.xsd" /> ...
但春天似乎并不被转化像它的端口导入的位置。所以,对我公司的网站仍显示“本地主机: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框架可以改变进口某种方式???
UPDATE:一些更多的背景....
我们使用相同的XSD使用Maven插件JAXB2打造我们的反应模式对象。这一切都很好,我们使用目录解析器实际在包含的JAR文件中查找附加业务域XSD。我们有100个描述我们业务领域的XSD。
因此,我试图不打破。
我想看到的是一个更详细的例子。使用JaxB2和XSD - > WSDL功能的示例。
我应该重构XSD吗?我应该使用WSDL而不是XSD 如何正确识别XSD以弹出? 我是否使用“classpath:My_file.xsd”?我需要将可能的100个XSD列入schemaCollection吗?
春季文档是伟大的,但我想一个实际的例子,匹配。
答
我想添加我们最终解决方案的细节。我们一直在转向Spring WS 2x。下面是一个更新的链接...
诀窍/关键是在这一节中,它说......“如果你要使用多个模式,或者通过包括或进口的,你会希望把共享XMLSchema“
所以这是我们项目的最终答案。
<dependency>
<groupId>org.apache.ws.commons.schema</groupId>
<artifactId>XmlSchema</artifactId>
<version>1.4.7</version>
</dependency>
现在spring使用额外的功能来允许类路径解析工作。
答
Spring-WS可以自动将所有模式元素直接内联到WSDL中,以便它们显示为单个文档。这可以避免无法访问的网址<import>
。
查看the section的Spring WS手册,其中谈到了CommonsXsdSchemaCollection
。
Spring WS 2已经出来了,你现在应该真的使用它了。 – skaffman 2011-03-28 15:22:21
有一天。这是我试图成形的现有开发,所以我可以移动到2.0 – grbonk 2011-03-29 14:33:14