Ich habe JAX-WS Stil Web-Service-Client, der mit der NetBeans IDE automatisch generiert wurde.Ist es sicher, javax.xml.ws.Service-Objekte wiederzuverwenden?
Die generierte Proxy-Factory (erweitert javax.xml.ws.Service) delegiert die Proxy-Erstellung an die verschiedenen Service.getPort-Methoden. Die Anwendung, die ich betreue, instanziiert die Factory und erhält bei jedem Aufruf des Zieldienstes einen Proxy.
Das wiederholte Erstellen der Proxy-Factory-Instanzen hat sich als kostspielig erwiesen, da die dem Factory-Konstruktor übergebene WSDL-Dokumentation, ein HTTP-URI, für jede Instanziierung erneut abgerufen wird.
Wir hatten Erfolg beim Verbessern der Leistung durch Zwischenspeichern der WSDL. Aber das hat hässliche Wartungs- und Verpackungsimplikationen für uns.
Ich würde gerne die Eignung der Zwischenspeicherung der Proxy-Fabrik selbst erkunden. Ist es sicher, z. B. können zwei verschiedene Client-Klassen, die auf derselben JVM ausgeführt werden und denselben Web-Service als Ziel haben, die gleiche Factory sicher verwenden, um unterschiedliche Proxy-Objekte zu erhalten (oder eine geteilte, wiedereintretende)?
Ich konnte keine Anleitung aus der JAX-WS-Spezifikation oder der javax.xml.ws-API-Dokumentation finden. Die Fabrik-Proxy-Vielfalt ist mir unklar. Wenn Service.getPort statt Service.createPort verwendet wird, ist das nicht vertrauenswürdig.