2016-07-04 5 views
1

Ich habe einige Fragen dazu, aber ohne konkrete Antwort gefunden. Ich habe Code wie unten:JAX-WS Thread sicher

1: QName qname = new QName (URI, SERVICE_NAME);

2: Dienst service = Service.create (WSDL_DOCUMENT_LOCATION, qname);

3: TestPort1 port = service.getPort (TestPort1.class);

Zeiten:

  • Linie 2 ist 16 ms

  • Linie 3 27 ms

Nun ist meiner Situation Zeit sehr wichtig ist, Frage ist, ist möglich, Qname und Service initialisiert nur einmal zu haben, und als statisches Feld definiert und bekomme nur Port jedes Mal, wenn ich brauche um einen WS-Anruf zu machen oder nicht?

Jeder andere Vorschlag?

Ich verwende Standard-Java-Jax-Ws-Annotationen.

UPDATE:

Vielleicht Lösung ist ein Objekt-Pooling als Apache Commons Pool-Bibliothek zu verwenden und erstellt Ports für eine spätere Verwendung speichern?

Antwort

1

QName enthält intern nur Strings und bietet keine Methode an, sie zu ändern, nachdem der Konstruktor aufgerufen wurde. Sie können sie also als unveränderliche Klasse behandeln, auch wenn dies nicht der Fall ist.

+0

Ok, aber das ist keine vollständige Antwort – djuRa