我有我的servlet spring配置...春天的WS多種模式
<context:component-scan base-package="org.knowledgebase.webservice"/>
<sws:annotation-driven/>
<sws:dynamic-wsdl id="carService"
portTypeName="carService"
locationUri="/carService/">
<sws:xsd location="classpath:/wsDefinition/car/properties.xsd"/>
<sws:xsd location="classpath:/wsDefinition/car/carServiceSimple.xsd"/>
</sws:dynamic-wsdl>
<bean class="org.springframework.ws.soap.axiom.AxiomSoapMessageFactory">
<property name="soapVersion">
<util:constant static-field="org.springframework.ws.soap.SoapVersion.SOAP_11"/>
</property>
</bean>
,並在同一個文件夾2周的XSD - carServiceSimple.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:pro="http://bar.foo/properties"
targetNamespace="http://bar.foo"
elementFormDefault="qualified">
<xs:import schemaLocation="properties.xsd" namespace="http://bar.foo/properties"/>
<xs:element name="StoreCarRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:string"/>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Properties" type="pro:PropertiesType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="StoreCarResponse">
<xs:sequence>
<xs:element name="Status" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="UpdateCarRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:string"/>
<xs:element name="Properties" type="pro:PropertiesType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="UpdateCarResponse">
<xs:sequence>
<xs:element name="Status" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
properties.xsd :
但在Glassfish 3部署後,該異常出現了:多元素需要共享XMLSchema.Please把共享的XMLSchema類路徑上。
Spring ws doc章節5.3.1: 如果要通過包含或導入使用多個模式,您需要將Commons XMLSchema放在類路徑中。如果Commons XMLSchema位於類路徑上,則上述元素將遵循所有XSD導入幷包含它們,並將它們作爲單個XSD嵌入到WSDL中。
「Commons XMLSchema」是什麼意思?我該如何解決它?謝謝。
我在類路徑上有兩個XSD文件(在war:WEB-INF \ classes \ wsDefinition \ car中)。當我從servlet中刪除行,然後生成wsdl可訪問,但是當我想要在此wsdl上創建SoapUI項目庫時,SopaUI顯示錯誤:不可能找到properties.xsd。
UPPS它是圖書館,謝謝beny23。這是我最愚蠢的問題。我得到這個錯誤時可能已經太晚了。 – Ziletka