Tengo un cliente de servicio web de estilo JAX-WS que se generó automáticamente con NetBeans IDE.¿Es seguro reutilizar objetos javax.xml.ws.Service?
La fábrica de proxy generada (amplía javax.xml.ws.Service) delega la creación de proxy a los diversos métodos Service.getPort. La aplicación que estoy manteniendo ejemplifica la fábrica y obtiene un proxy cada vez que llama al servicio objetivo.
Se ha demostrado que la creación repetida de instancias de fábrica de proxy es costosa, dado que la documentación WSDL suministrada al constructor de fábrica, un URI HTTP, se recupera para cada instanciación.
Tuvimos éxito en mejorar el rendimiento al almacenar en caché el WSDL. Pero esto tiene graves implicaciones de mantenimiento y embalaje para nosotros.
Me gustaría explorar la idoneidad de almacenar en caché la propia fábrica proxy. ¿Es seguro, por ejemplo, pueden dos clases de clientes diferentes, ejecutando en la misma JVM y dirigiéndose al mismo servicio web, usar de forma segura la misma fábrica para obtener distintos objetos proxy (o uno compartido, reentrante)?
No he podido encontrar instrucciones de la especificación JAX-WS ni de la documentación de la API javax.xml.ws. La multiplicidad de proxy de fábrica no está clara para mí. Tener Service.getPort en lugar de Service.createPort no inspira confianza.