Vaadin 응용 프로그램이 있는데 동시에 두 개의 응용 프로그램 인스턴스 (하나는 FF, 다른 하나는 IE)를 실행할 때 이상한 동작이 나타납니다. 나는 이미 대부분의 정적 객체를 제거했습니다. 이로 인해 다른 열린 응용 프로그램과 병렬로 사용될 때 응용 프로그램이 완전히 다시로드됩니다. 이제 완전한 재설정없이 UI와 정상적으로 상호 작용할 수 있습니다. 그러나 이제는 두 인터페이스에서 하나의 사용자 데이터 만 얻고 있음을 알게되었습니다. 이 문제는 일부 데이터 캐싱과 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();
}
나는 싱글 톤 객체를 선택했고, 내가 그 일에 대해 생각할 수있는 유일한 방법은이 것입니다 정적 인 어딘가에 있지만 static 키워드는 모든 문제의 원인 인 것 같습니다. 이 주변에 어떤 방법이 있습니까 아니면 다른 원인이 있습니까?
완벽하게 작동합니다. 감사합니다. – Valyrion