我有一个网站,完全用 GWT 编写,使用 App Engine,每当我更新代码库时,我希望用户使用我编译的 GWT 代码的最新版本。问题是,用户经常会看到像下面这样的异常,直到他们刷新页面。
我是否以正确的方式处理更新:
- 我更新 appengine-web.xml 中的版本字段,部署它,然后在 App Engine 中激活它。
- 但是,我发现有时用户的浏览器最终仍然使用旧版本
- 为了解决这个问题,我对服务器的第一个请求是检查一个 VERSION 字符串,如果它是错误的,那么我手动执行一个 Window.Location.reload()
- 这有效(大部分时间)
- 问题是有时在加载时我会遇到此问题底部所示的异常。当我刷新页面时,一切正常。
主要问题是我无法重现它,堆栈跟踪中的代码都不是我的。
关于如何:
- 重现吗?
- 调试它?
- 防止它?
- 以正确的方式更新我的网络应用程序?
堆栈跟踪:
com.google.gwt.event.shared.UmbrellaException: 3 exceptions caught: (Error) : Permission denied to access property 'target'; (Error) : Permission denied to access property 'target'; (Error) : Permission denied to access property 'target' 3 exceptions caught: (Error) : Permission denied to access property 'target'; (Error) : Permission denied to access property 'target'; (Error) : Permission denied to access property 'target'
at com.google.gwt.core.client.impl.StackTraceCreator$CollectorEmulated.$fillInStackTrace(StackTraceCreator.java:174)
at java.lang.RuntimeException.RuntimeException(RuntimeException.java:508)
at com.google.web.bindery.event.shared.UmbrellaException.UmbrellaException(UmbrellaException.java:71)
at com.google.gwt.event.shared.UmbrellaException.UmbrellaException(UmbrellaException.java:26)
at com.google.gwt.event.shared.HandlerManager.$fireEvent(HandlerManager.java:90)
at com.google.gwt.user.client.Event$NativePreviewEvent.fire(Event.java:87)
at com.google.gwt.user.client.DOM.previewEvent(DOM.java:1328)
at Unknown.anonymous(DOMImplStandard.java:152)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java:189)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:242)
at Unknown.anonymous(Impl.java:70)
at Unknown.anonymous(DOMImplStandard.java:187)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java:189)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:242)
at Unknown.anonymous(Impl.java:70)
Caused by: com.google.gwt.core.client.JavaScriptException: (Error) : Permission denied to access property 'target' (Error) : Permission denied to access property 'target'
at com.google.gwt.core.client.impl.StackTraceCreator$CollectorEmulated.$fillInStackTrace(StackTraceCreator.java:174)
at com.google.gwt.core.client.JavaScriptException.JavaScriptException(JavaScriptException.java:508)
at com.google.gwt.lang.Exceptions.caught(Exceptions.java:29)
at com.google.gwt.user.client.ui.PopupPanel.$eventTargetsPopup(PopupPanel.java:1167)
at com.google.gwt.user.client.ui.PopupPanel.$previewNativeEvent(PopupPanel.java:1340)
at com.google.gwt.user.client.ui.PopupPanel$3.onPreviewNativeEvent(PopupPanel.java:1435)
at com.google.gwt.user.client.Event$NativePreviewEvent.dispatch(Event.java:194)
at com.google.web.bindery.event.shared.SimpleEventBus.$doFire(SimpleEventBus.java:194)
at com.google.gwt.event.shared.HandlerManager.$fireEvent(HandlerManager.java:127)
... 10 more