0

我有一个网站,完全用 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
4

0 回答 0