Estoy trabajando en un proyecto de WS bastante grande que involucra más de 20 servicios web diferentes. Estos servicios web, aunque son independientes entre sí, comparten un conjunto considerable de tipos comunes. Estamos utilizando wsimport como un objetivo ant en nuestro script de compilación para generar las clases de proxy.Optimización de WSImport para WSDL múltiples con tipos comunes
Problema: A medida que el número de WS (y WSDL correspondientes) ha aumentado, notamos que los tiempos de compilación para nuestras clases proxy han ido subiendo bastante. Tras una mayor investigación (y perfilación), descubrimos que wsimport estaba gastando una gran parte del tiempo de compilación en la generación repetida de los tipos comunes. Ha llegado a un punto en el que la generación, compilación y empaquetado de estas clases proxy y sus tipos comunes demoran entre 15 y 20 minutos. Este es un problema para nosotros y estamos buscando formas de recortar el tiempo de compilación.
Pregunta: ¿Hay alguna manera de generar solo los tipos comunes una vez? He investigado algunas soluciones que se encuentran en Google. Una implicaba escribir un acumulador WSDL que analiza los WSDL y los combina en un único WSDL para que wsimport solo se llame una vez. Otro aludió al uso de archivos de episodios, pero una investigación posterior solo arrojó que había problemas con el uso de ese enfoque.
Nota: He visto algunas preguntas similares anteriores, pero ninguna de ellas tenía ninguna respuesta.
wsimport multiple generated wsdl's
How can I tell wsimport that separate WSDL files are referring to the same object classes?
¿Has probado la opción -mantener? – user1428716
No podrá hacerlo ... El acumulador wsdl fue su mejor opción, pero no le gusta, también puede usar enlaces para omitir la generación de tipos comunes en los sucesivos wsdl. El punto es que no hay ninguna ventaja en la generación de artefactos en la construcción cada vez ... Simplemente mantenga las clases generadas como fuentes (en un contenedor separado o no, como prefiera). – cocorossello