2009-07-26 26 views
5

JAX-RPC 1.1 kullanarak Java EE 1.4'te, web hizmetini nasıl açığa çıkarabilirim, bu nedenle wsdl, kişinin özelliklerinden birinin bir tarih olduğu karmaşık bir türe (kişi) sahiptir WSDL/XSD'de yalnızca bir tarih (örneğin zamanın istenmediği) yerine WSDL/XSD'de bir tarih (örneğin doğum tarihi) olarak gösterilen?Java web hizmeti, xsd date dateTime yerine

i gibi wsdl başvurulan Xsd olması olurdu

<xs:element name="birthdate" type="xs:date"/> 

yerine

<xs:element name="birthdate" type="xs:dateTime"/> 

hem Xsd veri türü neden görünmektedir java.util.Calendar ve java.util.Date wsdl/xsd içinde işlendiğinde dateTime olmak.

java EE 1.4'in java EE 5 gibi ek açıklamalara sahip olmadığını biliyorum, ancak xs: date veri türü kullanmak için web hizmetini bildirmenin herhangi bir yolu var mı?

cevap

1

Gerçekten bunu nasıl yapacağımı anladım.

WEB-INF/wsdl/(schemaname) .xsd Tarih türünü dateTime'dan itibaren değiştirdim ve hizmeti yeniden konuşlandırdım ve mevcut java.util.Calendar türleriyle çalışıyorum.

0

IBM docs numaralı belgeye göre, hem tarih hem de dateTime haritayı Takvim ile eşleştirebilirsiniz. Sadece tarih bölümünü kullanmak için standart bir yol gibi görünmüyor, tabii ki roll your own olabilir (ilginç bir şekilde başvurulan makalenin ikinci sayfası, tarihler sadece tarihler içindir, ancak sayfa 3 Takvim ile eşleştiğini doğrulamaktadır).

Başvuru için doing this in WCF ile ilgili benzer bir soru var.

+1

Bu yanıt için teşekkür ederiz, yardımcı olur, ancak doğrudan web hizmetinin bir xs: date alanıyla bir wsdl açığa çıkarmasını nasıl sağlayacağımı çözmeme yardımcı olmaz. İstemci başvurusu, wsdl'nin dateTime değil, yalnızca bir tarih göstermesini istedi. – jasonmw

1

Bunu başarabileceğinizi sanmıyorum, JAX-RPC sadece esnekliğe sahip değil (bu nedenle JavaEE 5'de öldürüldü). Genelde, genellikle WSDL jeneratörlerimin tam WSDI'yi üretmek için etkileyici bir güce sahip olmadığını görüyorum ve bu yüzden bunları başlangıç ​​noktası olarak bir WSDL oluşturmak ve sonra da sonucu değiştirmek için kullanma eğilimindeyim. Sonra, WSDL'yi oluşturulmuş olan yerine statik bir dosya olarak yedekleyin. İdeal değil, ama büyük bir anlaşma değil.