2010-05-20 7 views
12

Bir xsd dosya Foo.xsd var. Bir WSDL dosyasında başvurmak için aşağıdaki yöntemleri denedim ama çalışmaz.Bir xsd dosyasında şema konumu nasıl belirlenir?

1) yerel dosya sisteminde Xsd dosyası yerleştirilir ve

<xsd:import namespace="http://ws.test.com/" schemaLocation="file:///D:/wsdl/Foo.xsd"></xsd:import> 

2) Web kök klasöründe Xsd dosyası Yerleştirilmiş olarak ithal ve müşteri çalıştırdığınızda

<xsd:import namespace="http://ws.test.com/" schemaLocation="http://localhost:8080/Xfire/Foo.xsd"></xsd:import> 

olarak içe Yanıt nesnesi alanları için boşum. Ama bu, WSDL'nin kendisinde tür tanımını gömdüğümde işe yarar.

Harici xsds yolunu nasıl belirleriz?

Web hizmetleri oluşturmak için xFire 1.2.6 kullanıyorum. Müşteri xFire WSGen ant görevini kullanarak oluşturulur.

+0

Dosyaya doğrudan başvuruyorsanız, çalışma zamanı yollarına karşı zaman oluşturmaya dikkat edin. Ben bu konuda sorunları vardı ve benim referansları için bir sunucuda xsds barındırma sona erdi sonra yerine uri başvuran. webservices üretmek için kullanılan Xfire 1.2.6: şema parçası bulunamadı: –

cevap

16

WSDL'ye herhangi bir ana bilgisayardan HTTP tarafından erişilir, böylece istemci ne bir dosya URL'sine ne de localhost'a erişemez (kendi sunucusu olan sunucunuz değil).

Bağıl yolu::

<xsd:import namespace="http://ws.test.com/" schemaLocation="../Foo.xsd"/> 

Mutlak yolu: En iyi çözüm xsd dosyasına bir dosya yolu olacaktır

<xsd:import namespace="http://ws.test.com/" schemaLocation="/myapp/Foo.xsd"/> 

Eğer içerik yolunu bilmek gerekir mutlak yolu için sizin webapp, göreceli yolu tercih ederim.

+1

= "/ xfire/Foo.xsd" org.codehaus.xfire.XFireRuntimeException schemaLocation kullanarak göreli yolu denedik. – Manoj

+0

Göreceli bir yol bir/ile başlatılamıyor. Web sunucunuzun bağlam yolunu/xfire? –

+0

projemde maven Çok modüllü bir proje verdi ../foo.xsd. Bu modülü tek başıma kurarsam, XSD'yi bulabilir ve başarıyı kurabilir. eğer ebeveynden inşa edersem, XSD'yi ana kök konumunda arar, inşa başarısız oluyor. Proje çoklu modül ise xsd konumu nasıl verileceği hakkında herhangi bir fikir –