GWT - 仅在 Edge 浏览器中获取 UmbrellaException
GWT - Getting UmbrellaException only in the Edge browser
我目前正在使用 GWT 进行一个项目,我对它还是有点陌生。当我注意到只有在 Edge 浏览器中显示不正确时,我正在测试我的代码。在查看日志时,我看到了很多这样的错误:
com.google.gwt.event.shared.UmbrellaException: Exception caught: For input string: "176px"
所以我用谷歌搜索了一下,注意到这个 post:
所以我尝试将其添加到我的代码中,但这并没有解决我的问题。我仍然收到 umbrellaExceptions 并且 UI 在 Edge 中仍然显示不正确。
我的 html 文件的一部分:
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet/less" href="xxxxx.less"/>
<!--[if IE 9]>
<link type="text/css" rel="stylesheet/less" href="ie9.less">
<![endif]-->
<title>xxx</title>
<!-- Translations -->
<script type="text/javascript" src="translations/languages.js"></script>
<script type="text/javascript" src="js/less-1.7.5.min.js"></script>
<script type="text/javascript" src="xxxWebApp/xxxWebApp.nocache.js">
</script>
<script type="text/javascript" src="jquery/jquery.min.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/application.js"></script>
</head>
所以我尝试在其他元标记下添加 <meta http-equiv="X-UA-Compatible" content="IE=edge">
。但这似乎不起作用。我相信我没有正确添加该标签。但我尝试了不同的变体,例如:
<meta http-equiv="X-UA-Compatible" content="text/html; charset=UTF-8; IE=edge">
但是还是没有结果。有人可以如何正确添加该标签,或者什么可能导致仅在 Edge 浏览器中出现 UmbrelllaException。
更新:
这是完整堆栈跟踪的示例:
com.google.gwt.event.shared.UmbrellaException: Exception caught: For input string: "176px"
at sun.reflect.GeneratedConstructorAccessor24.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.instantiate(ServerSerializationStreamReader.java:1110)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize(ServerSerializationStreamReader.java:682)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.readObject(ServerSerializationStreamReader.java:592)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader$ValueReader.readValue(ServerSerializationStreamReader.java:149)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeValue(ServerSerializationStreamReader.java:434)
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:312)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:296)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:373)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
at com.nedap.retail.rheas.modules.systemconfig.GWTCacheControlFilter.doFilter(GWTCacheControlFilter.java:35)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1613)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:541)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1561)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
at com.nedap.retail.rheas.core.webserver.WebServerManager$WebServerHandler.handle(WebServerManager.java:137)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:564)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
at org.eclipse.jetty.io.ChannelEndPoint.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
at org.eclipse.jetty.util.thread.QueuedThreadPool.run(QueuedThreadPool.java:590)
at java.lang.Thread.run(Unknown Source)
提前致谢。
我无法评论为什么错误只出现在 Edge 上;我的印象是你应该在任何地方都得到它(或者 Edge 可能对似乎错误的输入不那么宽容)。
但是,关于错误本身:
- 看起来是因为您在应该只是“176”的情况下以“176px”的形式指定了一个值;这个值可以是元素的宽度,也可以是元素的高度,或者其他;您可能会很幸运,在您的项目中进行简单的文本搜索可能会指向正确的位置(按值“176”搜索)
- 如果上述方法不起作用,那么您需要更好地了解问题;使用
-style PRETTY
启动您的开发模式,并(可能递归地)在某处打印 UmbrellaException
的堆栈跟踪及其原因的堆栈跟踪(可能使用 here 的建议),使用UmbrellaException#getCauses
返回的原因。
好的,我真的不知道是什么导致了问题,但是将 GWT 从版本 2.8.0 更新到 2.8.1 解决了问题。
希望我用这个遮阳篷可以为别人省去一些麻烦。
我目前正在使用 GWT 进行一个项目,我对它还是有点陌生。当我注意到只有在 Edge 浏览器中显示不正确时,我正在测试我的代码。在查看日志时,我看到了很多这样的错误:
com.google.gwt.event.shared.UmbrellaException: Exception caught: For input string: "176px"
所以我用谷歌搜索了一下,注意到这个 post:
所以我尝试将其添加到我的代码中,但这并没有解决我的问题。我仍然收到 umbrellaExceptions 并且 UI 在 Edge 中仍然显示不正确。
我的 html 文件的一部分:
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet/less" href="xxxxx.less"/>
<!--[if IE 9]>
<link type="text/css" rel="stylesheet/less" href="ie9.less">
<![endif]-->
<title>xxx</title>
<!-- Translations -->
<script type="text/javascript" src="translations/languages.js"></script>
<script type="text/javascript" src="js/less-1.7.5.min.js"></script>
<script type="text/javascript" src="xxxWebApp/xxxWebApp.nocache.js">
</script>
<script type="text/javascript" src="jquery/jquery.min.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/application.js"></script>
</head>
所以我尝试在其他元标记下添加 <meta http-equiv="X-UA-Compatible" content="IE=edge">
。但这似乎不起作用。我相信我没有正确添加该标签。但我尝试了不同的变体,例如:
<meta http-equiv="X-UA-Compatible" content="text/html; charset=UTF-8; IE=edge">
但是还是没有结果。有人可以如何正确添加该标签,或者什么可能导致仅在 Edge 浏览器中出现 UmbrelllaException。
更新: 这是完整堆栈跟踪的示例:
com.google.gwt.event.shared.UmbrellaException: Exception caught: For input string: "176px"
at sun.reflect.GeneratedConstructorAccessor24.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.instantiate(ServerSerializationStreamReader.java:1110)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize(ServerSerializationStreamReader.java:682)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.readObject(ServerSerializationStreamReader.java:592)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader$ValueReader.readValue(ServerSerializationStreamReader.java:149)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeValue(ServerSerializationStreamReader.java:434)
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:312)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:296)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:373)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
at com.nedap.retail.rheas.modules.systemconfig.GWTCacheControlFilter.doFilter(GWTCacheControlFilter.java:35)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1613)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:541)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1561)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
at com.nedap.retail.rheas.core.webserver.WebServerManager$WebServerHandler.handle(WebServerManager.java:137)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:564)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
at org.eclipse.jetty.io.ChannelEndPoint.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
at org.eclipse.jetty.util.thread.QueuedThreadPool.run(QueuedThreadPool.java:590)
at java.lang.Thread.run(Unknown Source)
提前致谢。
我无法评论为什么错误只出现在 Edge 上;我的印象是你应该在任何地方都得到它(或者 Edge 可能对似乎错误的输入不那么宽容)。
但是,关于错误本身:
- 看起来是因为您在应该只是“176”的情况下以“176px”的形式指定了一个值;这个值可以是元素的宽度,也可以是元素的高度,或者其他;您可能会很幸运,在您的项目中进行简单的文本搜索可能会指向正确的位置(按值“176”搜索)
- 如果上述方法不起作用,那么您需要更好地了解问题;使用
-style PRETTY
启动您的开发模式,并(可能递归地)在某处打印UmbrellaException
的堆栈跟踪及其原因的堆栈跟踪(可能使用 here 的建议),使用UmbrellaException#getCauses
返回的原因。
好的,我真的不知道是什么导致了问题,但是将 GWT 从版本 2.8.0 更新到 2.8.1 解决了问题。
希望我用这个遮阳篷可以为别人省去一些麻烦。