私はVaadinアプリケーションを持っていますが、アプリケーションの2つのインスタンスを同時に実行すると(1つはFF、もう1つはIEで)、奇妙な動作をしています。私は既に大部分の静的オブジェクトを削除しています(これにより、開いている別のアプリケーションと並行してアプリケーションをリロードするとアプリケーションが完全にリロードされました)。しかし、私は現在、両方のインターフェースで1つのユーザーのデータしか得られていないことに気づいています。これは、私がデータキャッシングとSOAP接続を管理するために使用しているシングルトンオブジェクトによって引き起こされたと仮定しています。私はそれが奇妙な出力を引き起こしているシングルトンのパターン自体であるかどうか知りたいのですか、それともちょうど私が保っている静的インスタンスオブジェクトですか?vaadinアプリケーションインスタンスを互いに干渉させないようにするにはどうすればいいですか?
私はシングルトンでThreadLocalを使用しようとしましたが、シングルトンの機能でそれらを使用しようとすると、すべての変数が常にnullになります。現在、私のシングルトンにはこれが含まれています。恐らくそれはうまくいかず、ひどく間違っています。
private static ThreadLocal<SoapClient> instance = new ThreadLocal<SoapClient>();
public static synchronized SoapClient getInstance(){
if (instance.get() == null) {
instance.set(new SoapClient());
}
return instance.get();
}
私はいつも私のアプリケーションインスタンスの至る所にキャッシュされたデータにアクセスし、自分のユーザーのSOAP接続を持っているだろう、と私はそれを行うために考えることができる唯一の他の方法を持っていることですので、私はシングルトンオブジェクトを選択しました静的なオブジェクトはどこかにありますが、静的なキーワードが最初のすべての私の問題の原因であるようです。これを回避する方法はありますか、それを引き起こす何か他のものがありますか?ローカルあなたのスレッドをインスタンス化する
完全に動作します、ありがとうございます! – Valyrion