2012-05-10 32 views
6

Me gustaría desarrollar una aplicación para probar los servicios web, que generará automáticamente un formulario JSF utilizando los parámetros del WSDL proporcionado.¿Cómo se autogeneran dinámicamente Java Beans a partir de WSDL?

La URL WSDL es proporcionada por el usuario y no conozco los nombres de las operaciones antes de analizarla. Me gustaría que la aplicación revise las operaciones analizadas y sus parámetros, y genere automáticamente los Java Beans apropiados, que utilizaré para generar un formulario JSF.

He probado CXF y JAX-WS, pero creo que necesitan saber los nombres de las operaciones antes de generar beans Java. ¿Cómo generar beans Java Beans para cualquier WSDL? Ejecución manual wsdl2java no es una solución.

+0

¿Qué ocurre al ejecutar wsdl2java desde el interior de su programa? –

+1

AFAIK, 'wsdl2java' genera archivos * .java con nombres de operación, que tengo que compilar e importar dinámicamente de alguna manera. ¿Cómo haría esto sin saber sus nombres antes de crear los frijoles? – niutech

Respuesta

4

CXF tiene un "DynamicClient" (ver: http://cxf.apache.org/javadoc/latest-2.6.x/org/apache/cxf/jaxws/endpoint/dynamic/JaxWsDynamicClientFactory.html) que se puede utilizar para esto. Analiza el wsdl, genera objetos JAXB y los compila, y devuelve un cliente que se puede usar para obtener las operaciones y los tipos asociados a ellos.

+0

He utilizado CXF DynamicClient y funcionó bien: 'JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); Cliente c = dcf.createClient (url); Endpoint e = c.getEndpoint(); ServiceInfo si = endpoint.getService(). GetServiceInfos(). Get (0); BindingInfo bi = si.getBindings(). Get (0); BindingOperationInfo boi: bi.getOperations(). Get (0); ' – niutech

+0

He intentado con el código indicado anteriormente pero no funcionaba. se queja de .get (0) para BindingInfo y BindingOperationInfo. por favor, por favor coloque el código de trabajo aquí. Gracias – Motilal

Cuestiones relacionadas