2010-05-14 21 views
6

Şema klasörünü uzaktan yerel yerine yerel olarak çözmek için .war dosyasına bir jax-ws-catalog.xml ekledim. Ben .WAR dağıtmak ve schemaLocation http://somehost:8080/CMDB/schemas/common/1.0/CMDBCommonTypes.xsdMetroda şemaLocation'ı yerel olarak çözmek için herhangi biri jax-ws-catalog.xml aldı mı?

şema erişmeye çalışan o takılıyor web hizmeti doğrulamak için SoapUI kullanabilir ve wsdl hem doğrulamak zaman

Metro User Guide: 2.10. Developing client application with locally packaged WSDL

de örnek izlediyseniz Eclipse (Eclipse için XML Katalog aracı kullanarak). (Bunun için jax-ws-catalog.xml ve ilgili xsd ve wsdl'nin içeriğini yazdırabilirim.

Bir Google araştırmasında, jax-ws-catalog.xml dosyasıyla pek çok sorunla karşılaşabilirsiniz. Metro yığını.

kimse Metro çalışmak için jax-ws-Catalog.xml aldı mı?

+0

bunu çözebilir misiniz? jax-ws-catalog.xml dosyanızı nereye koydunuz? Uygulamamda şu şekilde görünüyor: WEB-INF/jax-ws-catalog.xml – hugri

+0

@hubertg: Bir istemci veya sunucu yazıp yazmayacağınıza bağlı olarak, 'META-INF' veya 'WEB-INF' . Bakınız https://jax-ws.dev.java.net/nonav/2.1.5/docs/catalog-support.html –

cevap

15

Eğer jax-ws-Catalog.xml ve WSDL dosyaları koyuyoruz?

You bir WAR kullandığınızdan bahsetmişti, ancak bir savaş içinde jax-ws-catalog.xml dosyasının konumu bir WS istemcisi veya WS Endpoint yayıncısı (sunucu) olarak erişmeye çalışıp çalışmadığınıza bağlıdır.

Harici Web Hizmetlerine WAR'inizden erişiyorsanız, jax-ws-catalog.xml uygulamanızın app.war/WEB-INF/classes/META-INF dizinine girmesi gerekir, Alternatif olarak Uygulamanız içinde dağıtılan bir ilk web hizmeti sözleşmesi ve @WSDLLocation ek açıklamasına sahip, daha sonra bu WSDL için jax-ws, app.jar/META-INF

için jax-ws-catalog.xml dosyasını arar. WSDL konum app.war/WEB-INF/sınıfları/META-INF/jax-ws-Catalog.xml @WSDLLocation ek açıklama ile sözleşme ilk WS endpointi için app.war/META-INF

yapmak istediğiniz takdirde her ikisi de, yani (önce sözleşme) olarak yayınla Web Hizmetleri'ni tüketirken, her iki konumda da jax-ws-catalog.xml + WSDL'leri yerleştirmeniz gerekir, örneğin, app.jar/WEB-INF/sınıfları/META-INF ve app.jar/META-INF

Yukarıdaki yaklaşımı, web servislerini aynı anda yayınlamanın yanı sıra aynı anda yayınlayan projelerimin çoğunda da başarıyla kullandım ve beklediğim gibi çalışacağını garanti edebilirim.

+0

Sen bir dahisin! Xml'nin/META-INF dizininde çalıştığı temel bir Java uygulaması ile prototip oluşturuyordum. Ancak Java web uygulamaları ile çalışırken, META-INF dizini sınıf yolunda değildir. WEB-INF/sınıfları dir, ve bu yüzden jaxws-catalog.xml ile bir META-INF klasörü oluşturmalısınız! – NickGreen

+0

Gerçekten onun cevabını kabul etmelisiniz ... – Sirs

+0

Dosya 'jax-ws-catalog.xml' olarak adlandırılmalıdır. Cevap 'ja'' sonra' '' eksik ve bana biraz keder neden oldu. – rveach

İlgili konular