2012-05-10 27 views
6

Sağlanan WSDL'den parametreleri kullanarak otomatik olarak bir JSF formu oluşturacak olan Web Hizmetlerini sınamak için bir uygulama geliştirmek istiyorum.Java Fasulyelerini WSDL'den dinamik olarak nasıl otomatik olarak oluşturur?

WSDL URL'si kullanıcı tarafından sağlanmıştır ve ayrıştırmadan önce işlemlerin isimlerini bilmiyorum. Uygulamanın ayrıştırılmış işlemleri ve parametrelerini incelemesini ve bir JSF formu oluşturmak için kullanacağım uygun Java Fasulyelerini otomatik olarak dönüştürmesini istiyorum.

CXF ve JAX-WS'yi test ettim, ancak Java çekirdekleri oluşturmadan önce işlem adlarını bilmeleri gerektiğini düşünüyorum. Herhangi bir WSDL için nasıl şeffaf bir şekilde Java Fasulyesi üretilir? Elle çalışan wsdl2java bir çözüm değildir.

+0

Wsdl2java'yı programınızın içinden çalıştırmaktan ne haber? –

+1

AFAIK, 'wsdl2java', bir şekilde dinamik olarak derleyip içe aktarmak zorunda olduğum işlem adlarıyla * .java dosyaları oluşturur. Bunu, fasulye yaratmadan önce isimlerini bilmeden nasıl yapardım? – niutech

cevap

4

CXF bir "DynamicClient" (http://cxf.apache.org/javadoc/latest-2.6.x/org/apache/cxf/jaxws/endpoint/dynamic/JaxWsDynamicClientFactory.html bakınız) var. Bu, wsdl, oluşturulan JAXB nesnelerini ayrıştırır ve bunları derler ve işlemlerin ve türlerin ve bunlarla ilişkili olanların elde edilmesi için kullanılabilecek bir istemci döndürür.

+0

CXF DynamicClient kullanıyorum ve gayet iyi çalıştı: 'JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); İstemci c = dcf.createClient (url); Bitiş noktası e = c.getEndpoint(); ServiceInfo si = endpoint.getService() getServiceInfos(). Get (0); BindingInfo bi = si.getBindings(). Get (0); BindingOperationInfo boi: bi.getOperations(). Get (0); – niutech

+0

Yukarıdaki kodla denedim ama çalışmadım. BindingInfo ve BindingOperationInfo için .get (0) hakkında şikayet ediyor. lütfen çalışma kodunu buraya koyar mısın lütfen. Teşekkürler – Motilal

İlgili konular