在每个请求之前获取新的JAX-WS WebService端口

时间:2016-04-20 16:17:42

标签: java web-services jax-ws

我正在对一些java应用程序进行更改,并且我注意到它们在循环的每次迭代中实例化服务客户端,如下所示:

n <- 4
distancevector <- c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6)

D <- diag(n)
D[lower.tri(D)] <- distancevector
D[upper.tri(D)] <- t(D)[upper.tri(D)]

> D
     [,1] [,2] [,3] [,4]
[1,]  1.0  0.1  0.2  0.3
[2,]  0.1  1.0  0.4  0.5
[3,]  0.2  0.4  1.0  0.6
[4,]  0.3  0.5  0.6  1.0

而不是像以下那样获得端口:

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

使用第二种方法会有什么不同吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以多次重复使用端口对象,而无需创建新的端口对象。

我之前的评论不正确,正如JoãoRebelo所指出的那样。

我已使用此计算器服务验证了它

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

使用wsdl2java http://www.webservicex.com/globalweather.asmx?WSDL

导出工件后

以下代码完美无缺。

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));
}