0

アプリケーション開発に gwt-platform を使用しています。

同じアプリケーションを実行している 2 つのブラウザーを開き、異なるデータで 2 つの同じ操作を実行しましたが、同じビューのブラウザーが同様のハンドラー アクションにアクセスするようになりました。

問題は、2 つのブラウザーがハンドラーから最初に受信したデータで更新されたことです。

リクエストを送信するブラウザが認識されない理由がわかりません...つまり、スレッドセーフではないことを意味します...?

Guice で @RequestedScope アノテーションを見ましたが、Handler の on execute() を使用すると便利です

助言がありますか?

前もって感謝します...

4

3 に答える 3

1

多分...

アクションをスレッドセーフにする必要があります。(attrs には final があります。たとえば、コンストラクターに注入します)、おそらく、ロジックもスレッドセーフである必要があります。

ところで、あなたの行動の例を投稿できますか?

于 2012-05-30T19:09:39.060 に答える
1

2 つのブラウザーでは、アプリの 2 つの異なるインスタンスを実行する必要があります。あなたのonModuleLoad()中に、 を入れるだけSystem.out.println(this);です。異なる結果が表示されるはずです。これは、異なるインスタンスがあることを意味します。

ブラウザ 1 からアクションを実行すると、アクションはブラウザ 1 でのみ実行されます。アクションが何をしているのかはわかりませんが、データストア (または DB) 内のデータを更新し、両方のインスタンスが永続レイヤーを共有するため、 Browser 2 にも新しいデータが表示されます。

ブラウザ 1 でトリガーされたアクションが両方のブラウザで実行されることはほとんどありません。これは、同じイベント バスを共有することを意味します。

于 2012-05-31T06:00:52.807 に答える
0
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;
    }
}

私のアクションクラスコードを見つけてください

于 2012-05-31T04:39:43.760 に答える