2012-08-31 21 views
7

Tengo una pregunta con respecto a la generación de artefactos Java con herramientas wsimport (por Maven JAX-WS)código generado por wsimport - las mejores prácticas para el embalaje del código

Cuando genero los artefactos Java a partir de WSDL, me gustaría hacer las maletas el proyecto de servicio web como un archivo WAR y su cliente como un archivo JAR.

¿Dónde colocar los artefactos generados y dónde colocar el WSDL? ¿Cuál es la mejor práctica para organizar proyectos de servicios web?

¡Gracias de antemano!

Saludos, Jurica Krizanic

Respuesta

3

Serán necesarios los artefactos en ambos lado cliente y servidor para empaquetarlos en un tercer frasco y configurarlo como una dependencia para ambos. Los WSDL deben ir a la carpeta WEB-INF de la guerra y el atributo wsdlLocation de @WebService y @WebServiceClient se debe establecer para reflejar la ruta de acceso a la misma.

+0

Gracias por la respuesta. ¿Sabes dónde poner WSDL dentro de un archivo war? Tengo algunos problemas de carga wsdl ... –

+0

@JuricaKrizanic Editado mi respuesta. – zeller

+0

¿El código generado por wsimport es el mismo, que va al lado del servidor y al lado del cliente? –

1

Las opciones de empaquetado para servicios administrados se definen en JSR 109: Web Services for Java EE, Version 1.3.

Para servicios: Módulo

5.4.2 EJB Embalaje

... la ubicación descriptor de despliegue de servicios Web dentro del archivo JAR EJB- es META-INF/webservices.xml. El directorio wsdl se encuentra en META-INF/wsdl.

5.4.3 aplicación web de Módulo de embalaje

... un descriptor de despliegue de servicios Web se encuentra en una guerra en WEB-INF/webservices.xml y el directorio WSDL se encuentra en WEB-INF/wsdl.

Para los clientes:

Un cliente puede ser cualquiera de los siguientes: cliente Java EE aplicación, componente web, de componentes EJB, u otro servicio Web.

La ubicación del descriptor de despliegue del cliente de servicios web en el módulo es específica del módulo. Los archivos WSDL están ubicados en relación con la raíz del módulo y normalmente se encuentran en el directorio wsdl que está ubicado junto con el descriptor de despliegue del módulo o un subdirectorio de .

Tenga en cuenta que esta especificación se limita a los clientes de Java EE; no significa que no pueda tener un unmanaged client donde proporciona el WSDL explícitamente.

de referencias cruzadas estas especificaciones para más detalles:

Cuestiones relacionadas