2016-04-20 4 views
0

ich Änderungen an einigen Java-Anwendungen zu machen und ich bin zu bemerken sie den Service Client in jeder Iteration der Schleifen instanziiert, wie folgt aus:Wie Sie einen neuen JAX-WS WebService Hafen vor jeder Anfrage

for(String name : names) { 
HelloService helloWS = new HelloService(); 
HellowServicePort helloPort = helloWS.getHelloServicePort(); 
helloPort.sayHello(name); 
} 

Anstatt den Port einmal zu bekommen, wie folgt:

Macht die Verwendung des zweiten Ansatzes einen Unterschied?

+0

@ 11. Dimension warum würden Sie sagen "es braucht verschiedene Objekte für jeden Anruf"? –

+0

@GabrielBB, haben Sie den zweiten Ansatz versucht und einige SOAPHandler erhalten, um zu sehen, ob Sie einen Unterschied bemerken? Verwenden Sie einen JavaEE-Container? –

+0

@ JoãoRebelo Ich nehme an, dass es einen Socket öffnen würde, um die Nachricht zu senden. Bitte korrigieren Sie mich, falls ich falsch liege. – 11thdimension

Antwort

1

Ja, Sie können das Port-Objekt mehrmals verwenden, ohne ein neues erstellen zu müssen.

Mein vorheriger Kommentar war falsch, wie von JoãoRebelo hingewiesen.

ich überprüft haben, es mit diesem Rechner Service

http://www.webservicex.com/globalweather.asmx?WSDL

Nachdem die Artefakte mit dem Werk völlig in Ordnung wsdl2java http://www.webservicex.com/globalweather.asmx?WSDL

folgenden Code zu exportieren.

Calculator calculatorClient = new Calculator(); 
ICalculator port = calculatorClient.getICalculator(); 
for(int i = 0; i < 10; i++) { 
    float x = (float)Math.random() * 100; 
    float y = (float)Math.random() * 100; 
    System.out.printf("%f + %f = %f%n", x, y, port.add(x, y)); 
} 
+0

Sie können hier eine Verbindung herstellen, um Ihre Antwort mit [thread-safety information] zu vervollständigen (http://stackoverflow.com/questions/10599959/is-this-jax-ws-client-call-thread-safe) –

Verwandte Themen