我想在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来构建我们的响应模式对象。这一切都很好,我们使用Catalog解析器实际在包含的JAR文件中找到附加业务域XSD。我们有100个XSD来描述我们的业务领域。
所以我试图不打破它。
我希望看到更详细的例子。使用JaxB2和XSD的示例 - &gt; WSDL功能。
我应该重构XSD吗? 我应该使用WSDL而不是XSD 如何正确识别XSD弹簧? 我使用“classpath:My_file.xsd”吗?我是否必须将100个XSD列入schemaCollection?
春季文档很棒,但我想要一个匹配的实际例子。
答案 0 :(得分:3)
我想补充一下我们最终解决方案的细节。我们一直在转向Spring WS 2x。这是一个更新的链接...
技巧/关键在那一节它说......“如果你想使用多个模式,无论是通过包含还是导入,你都会想要把Commons XMLSchema”
这是将其添加到我们项目中的最终答案。
<dependency>
<groupId>org.apache.ws.commons.schema</groupId>
<artifactId>XmlSchema</artifactId>
<version>1.4.7</version>
</dependency>
现在,spring启用了其他功能,允许类路径解析工作。
答案 1 :(得分:2)
Spring-WS可以自动将所有架构元素直接内联到WSDL中,以便它们显示为单个文档。这样可以避免无法访问<import>
网址的问题。
参见Spring WS手册的the section,该手册讨论CommonsXsdSchemaCollection
。