2012-07-25 53 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

相關問題