2012-07-25 35 views
2

如果例如orders.wsdl进口Orders.xsd,怎么能使用静态-WSDL配置有没有办法在Spring WS 2中公开静态XSD?

<sws:static-wsdl id="orders" location="/WEB-INF/wsdl/orders.wsdl"/> 

使得Orders.xsd可以在浏览器中查看等http://host/context/Orders.xsd

动态WSDL支撑它。

<sws:dynamic-wsdl id="orders" 
    portTypeName="Orders" 
    locationUri="http://localhost:8080/ordersService/"> 
    <sws:xsd location="/WEB-INF/xsd/Orders.xsd"/> 
</sws:dynamic-wsdl> 

但是static-wsdl没有sws:xsd属性。

回答

0

没有namspace支持,但你可以做到这一点 -

<bean id="Orders" class="org.springframework.xml.xsd.SimpleXsdSchema"> 
    <property name="xsd" value="classpath:/Orders.xsd" /> 
</bean> 

这将解决所引用XSD在您的WSDL文件 -

<wsdl:types> 
    <xsd:schema elementFormDefault="qualified"> 
     <xsd:import namespace="..." schemaLocation="Orders.xsd"></xsd:import> 
    </xsd:schema> 
</wsdl:types> 
+1

这就是我在spring-ws 1.5中所做的。看起来我们被这种有点混乱的方法困住了。 Spring建议使用静态wsdl,但不能为导入的xsd添加'sws:xsd location'。打败我。 – 2012-07-25 05:48:03

0

,或者你可以用

<wsdl:types> 


    <xs:schema targetNamespace="...." 
      elementFormDefault="qualified"> 

       <xs:include schemaLocation="xsd/Order.xsd"/> 

    </xs:schema> 
TYT
+0

您应该提供一些关于此代码如何解决问题的详细信息。我通过“低质量帖子”列表找到了答案,因此存在删除的危险。 – 2012-11-13 01:35:21

相关问题