2010-08-16 21 views

Respuesta

1

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.

5

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.

+0

¿Cómo usar el archivo wsipmort.exe? – sarah

+0

Haga clic en el enlace en 'wsimport' y hay una solución para ello. –

12

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 -bwsimport 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.

4

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.

+0

+1 Estaba a punto de recomendarlo. NetBeans en este caso lo hacen trivial. – Rekin

0

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.

2

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.

0

Esto ahora es simple cuando usa su IDE. Tomemos netbeans como nuestra muestra.

  1. netbeans Abiertas
  2. crear un nuevo proyecto de archivo de clic y escoge nuevo proyecto
  3. elegir un Java bajo la categoría y java-solicitud bajo aplicaciones
  4. derecha haga clic en el proyecto recién creado y seleccione nuevo y elegir web cliente de servicio.
  5. Netbeans pedirá una ubicación WSDL y el cliente

    [WSDL y el cliente ubicación] [1]

    [1]: https://i.stack.imgur.com/yWQZv.png 
    
  6. elegir WSDL y escriba la dirección URL a la de la ubicación WSDL

  7. 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

Cuestiones relacionadas