我正在爲我的應用程序開發使用gwt平臺。GWTP處理程序是線程安全的?
我開了2個瀏覽器中運行相同的應用程序,我做了2個不同的數據相同的操作,但現在在同一個視圖中的瀏覽器訪問類似的處理動作
現在的問題是2個瀏覽器已經與更新第一次收到處理程序的數據..
我不明白爲什麼它不能識別發送請求的瀏覽器......所以這意味着它不是Threadsafe ...?
我看到在吉斯@RequestedScope註釋是有用,當我用處理器
任何建議的執行()?
在此先感謝...
我正在爲我的應用程序開發使用gwt平臺。GWTP處理程序是線程安全的?
我開了2個瀏覽器中運行相同的應用程序,我做了2個不同的數據相同的操作,但現在在同一個視圖中的瀏覽器訪問類似的處理動作
現在的問題是2個瀏覽器已經與更新第一次收到處理程序的數據..
我不明白爲什麼它不能識別發送請求的瀏覽器......所以這意味着它不是Threadsafe ...?
我看到在吉斯@RequestedScope註釋是有用,當我用處理器
任何建議的執行()?
在此先感謝...
也許......
你必須使你的操作線程安全的。 (attrs有最終的,例如注入構造函數),並且你的邏輯必須是線程安全的。
順便說一句,你能發表一個你的行動的例子嗎?
public class InfoAction extends UnsecuredActionImpl<Response<ObjectTO>>
{
private List<OpenTO> request;
private String machineId;
private int actionType;
private UserBean userBean;
/**
* This is been in the case of double dated flight.
*/
private String orignalFpesLegId;
public List<OpenTO> getRequest() {
return request;
}
public void setRequest(List<OpenTO> request) {
this.request = request;
}
public String getMachineId() {
return machineId;
}
public void setMachineId(String machineId) {
this.machineId = machineId;
}
/**
* @return the actionType
*/
public int getActionType() {
return actionType;
}
/**
* @param actionType the actionType to set
*/
public void setActionType(int actionType) {
this.actionType = actionType;
}
/**
* @param userBean the userBean to set
*/
public void setUserBean(UserBean userBean) {
this.userBean = userBean;
}
/**
* @return the userBean
*/
public UserBean getUserBean() {
return userBean;
}
}
請找我的動作類代碼
隨着2瀏覽器,你應該有你的應用程序運行的2個不同的實例。在你的onModuleLoad()
,只需要一個System.out.println(this);
。你應該看到不同的結果,這意味着你有不同的實例。
如果您從瀏覽器1執行操作,則操作將在瀏覽器1中執行只有。我不知道您的操作正在做什麼,但是如果它更新數據存儲區(或數據庫)中的數據,實例共享持久層,您將在瀏覽器2中看到新數據。
在兩個瀏覽器上執行瀏覽器1中觸發的操作的可能性非常小。這意味着他們共享相同的事件總線。
嘿我兩個都是不同的對象.. – JAVAC