¿Cómo puedo acceder a los métodos expuestos en un archivo .wsdl
utilizando Java? Además, ¿cuáles son los pasos necesarios para escribir un cliente Java y consumir los servicios web?¿Cómo escribir un cliente Java para acceder al archivo WSDL?
Respuesta
Yo recomendaría empezar con el explorador de Web Service en Eclipse Java EE. Esto le permite investigar cualquier servicio web dado el WSDL.
Las instrucciones para convertir el WSDL a Java depende de qué biblioteca servicio web que desea utilizar. Si utiliza Java 6 metro de la pila está integrada.
Tendrá que necesita para generar un proxy de Java desde el archivo WSDL. Puede hacerlo utilizando Apche CXF o Apache Axis/Axis2 para generar Java Proxy/Java Client.
En Java 6, también puede generar clientes java. En el JDK/bin hay wsimport para generar el cliente del servicio web o en Axis, hay WSDL2Java que hace lo mismo que wsimport.
Además de The Elite Gentleman's answer, aquí están mis pasos he utilizado con éxito para generar clases para poder utilizar el servicio web: Comando:
wsimport -Xnocompile -keep -b binding.xml wsdlFile.wsdl
Explicación:
- suprime '-Xnocompile' la generación de los archivos .class
- '-keep' asegura que el Java generado suele archivos de ser borrado (de forma predeterminada, sólo los archivos .class permanecen)
- '-b' especifica un archivo de configuración de enlace. ¡Esto es necesario! (vea a continuación)
Tuve el problema de que las clases de Java contenían las clases de contenedor JAXBElement<Type>
. Entonces, en lugar de un miembro de la clase del tipo String
, obtendría el tipo JAXBElement<String>
, que es horrible de usar. Con el interruptor de -b
wsimport
y el archivo siguiente binding.xml
, se obtiene el tipo correcto:
<jaxb:bindings version="2.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jaxb:bindings>
<jaxb:globalBindings generateElementProperty="false" />
</jaxb:bindings>
</jaxb:bindings>
espero que esto ayude. wsimport
genera todas las clases que necesita, así como una clase que contiene métodos para todos los métodos de sus servicios web.
De forma predeterminada, estos métodos no tienen un tiempo de espera de lectura (problemas de red al solicitar ...), vea here para una pregunta que tenía en ese momento.
Me gustaría ver cómo su IDE genera automáticamente todo.
En Netbeans, los pasos son:
Haga clic derecho en su proyecto, haga clic en "Añade un Servicio al Cliente", introduzca la URL WSDL y haga clic en Finalizar.
Esta voluntad de auto-mágicamente crear el proxy de Java para usted.
Para implementar el cliente en su código, arrastre y coloque el método requerido (ubicado en Referencias de servicios web en su proyecto) en su código.
+1 Estaba a punto de recomendarlo. NetBeans en este caso lo hacen trivial. – Rekin
soapUI es uno de los softwares que le permite acceder fácilmente al mundo WSDL/SOAP. Puede generar solicitudes SOAP con valores de prueba para enviar al servidor. También puede ver las respuestas SOAP del servidor. Esto le permitirá comprender un poco más de WSDL/SOAP. Para generar el código java del wsdl, consulte las recomendaciones anteriores.
Use wsimport -keep
que le dará todas las clases. Luego, escriba una clase de servicio diferente y copie todo el método de la clase de servicio generada. Pase su propia clase de servicio al wsgen -keep -p
. Le proporcionará las clases contenedoras necesarias (jax-ws) que va a devolver a partir de sus métodos de invocación de delegado.
Esto ahora es simple cuando usa su IDE. Tomemos netbeans como nuestra muestra.
- netbeans Abiertas
- crear un nuevo proyecto de archivo de clic y escoge nuevo proyecto
- elegir un Java bajo la categoría y java-solicitud bajo aplicaciones
- derecha haga clic en el proyecto recién creado y seleccione nuevo y elegir web cliente de servicio.
Netbeans pedirá una ubicación WSDL y el cliente
[WSDL y el cliente ubicación] [1]
[1]: https://i.stack.imgur.com/yWQZv.png
elegir WSDL y escriba la dirección URL a la de la ubicación WSDL
haga clic en finalizar y se crearán todos los métodos
Su tarea desde aquí es llamar a los métodos y pasar los parámetros
- 1. Dado un archivo WSDL, cree un cliente Java simple
- 2. Cliente SOAP en C# sin acceso a un archivo WSDL
- 3. ¿Cómo generar un archivo WSDL?
- 4. envíe un archivo al cliente
- 5. Alojamiento WCF: puede acceder al archivo svc pero no puede ir al enlace wsdl
- 6. Escribir un cliente telnet
- 7. C# client cómo invocar el archivo wsdl
- 8. Cómo crear un cliente de jabón sin WSDL
- 9. Cómo recuperar un WSDL de un solo archivo para un servicio WCF (WSDL plana)
- 10. Cómo usar un archivo WSDL para crear un Proxy WCF?
- 11. ¿Cómo crear un cliente Java para el servicio web?
- 12. ¿Cómo hacer un cliente SOAP/WSDL en C#?
- 13. Autenticación de cliente WSDL y múltiples certificados
- 14. Java ClassCastException al generar WSDL en Eclipse?
- 15. UnicodeEncodeError al escribir en un archivo
- 16. Cómo generar cliente RESTful en JAVA para REST definido en WSDL
- 17. Primer acercamiento de WSDL: ¿Cómo especificar diferentes nombres para wsdl: port y wsdl: binding?
- 18. Incrustar el WSDL para un servicio web en un cliente JAX-WS .jar
- 19. Cómo analizar WSDL en Java?
- 20. JAVA: leer y escribir un archivo juntos
- 21. Escribir en un archivo XML en Java
- 22. Java -jar: acceder al archivo de configuración externa
- 23. Codificación :: UndefinedConversionError al escribir un archivo binario
- 24. Cliente de servicio WSDL/SOAP Android
- 25. groovy: ¿Cómo acceder al archivo de propiedades?
- 26. cómo generar un archivo WSDL de un servicio web C#
- 27. Cómo usar un WSDL
- 28. ¿Cómo crear un archivo temporal (para escribir en) en C#?
- 29. Crear ruta completa automáticamente al escribir en un nuevo archivo
- 30. ¿Cómo escribir un servidor retorcido que también es un cliente?
¿Cómo usar el archivo wsipmort.exe? – sarah
Haga clic en el enlace en 'wsimport' y hay una solución para ello. –