我是Java EE和SOAP的新手。我試圖創建一個簡單的Web服務應用程序及其客戶端(環境:NetBeans 7.2.1 IDE,GlassFish Server 3.1,Java 1.6)。每次調用後不同的Web服務對象
Web服務代碼:
package simplews;
import javax.jws.*;
@WebService(serviceName = "SimpleWebService")
public class SimpleWebService {
String something = null;
@WebMethod(operationName = "setSomething")
@Oneway
public void setSomething(@WebParam(name = "smth") String smth) {
something = smth;
}
@WebMethod(operationName = "getSomething")
public String getSomething() {
return something;
}
}
客戶端應用程序代碼:
package simpleclientapp;
import simplews.*;
public class SimpleClientApp {
public static void main(String[] args) {
SimpleWebService_Service service = new SimpleWebService_Service();
SimpleWebService port = service.getSimpleWebServicePort();
port.setSomething("trololo");
String smth = port.getSomething();
System.out.println(smth);
}
}
不幸的是,客戶端應用程序打印出來null
。經過簡短的調查後,我意識到,在服務器端,每個客戶端調用都會創建一個新的SimpleWebService
對象(聽起來像無狀態方法)。
這裏有什麼問題?爲什麼客戶端端口不會爲每個調用引用相同的WS對象?