2014-02-13 76 views
0

與Web服務定義如下@Stateless爲什麼@Stateless @WebService是有狀態的?

import javax.ejb.Stateless; 
import javax.jws.WebService; 

@Stateless 
@WebService(serviceName = "TestService") 
public class TestService { 
    int counter = 0; 
    public int getCounter() { 
     return counter++; 
    } 
} 

爲什麼「反」與每個請求增加,並不總是返回0?

回答

1

因爲使用@Stateless你告訴容器你沒有任何狀態,但你確實保持狀態。

由於@Stateless容器只創建一個bean實例,因爲不需要創建更多。

你可能想了解更多關於JEE一點,標註的意義:http://theopentutorials.com/tutorials/java-ee/ejb3/session-beans/slsb/introduction-11/

+0

給出的鏈接有助於更好地理解它。謝謝。特別是,我修改'ThreadClean'方法來獲得併發訪問。 關於「使用'@ Stateless',容器只創建一個bean的實例,因爲不需要創建更多的」 - 在這種併發訪問的情況下創建不同的實例。 – maksim