Cuma, Ağustos 13, 2010

Schema name conflict in collection

Bugün Spring WS(web servis) ile uğraşırken başlıktaki hata ile karşılaştım. Hatanın tam metni şöyle;

org.springframework.xml.xsd.commons.CommonsXsdSchemaException: Schema [ServletContext resource [/WEB-INF/schemas/ext_schema.xsd]] could not be loaded; nested exception is org.apache.ws.commons.schema.XmlSchemaException: Schema name conflict in collection. Namespace: urn:com.company.test

Hata ilk bakışta xsd(xml schema definition) dosyamızdaki namespace ile ilgili görünsede hatanın asıl sebebi çok daha farklı ve basit.

Spring WS xsd dosyalarımızı yüklerken konfigürasyon dosyasında belirtilen sıra ile yüklüyor ve eğer yüklemeye çalıştığı schema, henüz yüklenmemiş bir schema'yı import ediyorsa yükleme işlemi böyle bir hata ile sonlanıyor.

Bu yüzden konfigürasyon dosyanızda import edilen bir schema'nın, import eden schema'dan önce tanımlanmasına dikkat etmeniz gerekiyor.

i.e.
classpath:/com/company/test/Base.xsd
classpath:/com/company/test/ImportsBase.xsd