java.lang.NoClassDefFoundError: com/google/gwt/core/client/GWTBridge
Posted
技术标签:
【中文标题】java.lang.NoClassDefFoundError: com/google/gwt/core/client/GWTBridge【英文标题】: 【发布时间】:2017-10-17 12:39:58 【问题描述】:我已经为 GWT 包含了以下依赖项
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>2.5.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-dev</artifactId>
<version>2.5.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<version>2.5.0</version>
</dependency>
尽管在类路径中包含 GWT jar,但我收到以下运行时错误。
2017.10.17 08:30:28 ERROR servlet(323): Exception while dispatching incoming RPC call
at com.google.gwt.user.client.rpc.core.java.util.Arrays$ArrayList_CustomFieldSerializer.serialize(Arrays.java:64)
at com.google.gwt.user.client.rpc.core.java.util.Arrays$ArrayList_CustomFieldSerializer.serializeInstance(Arrays.java:94)
at com.google.gwt.user.client.rpc.core.java.util.Arrays$ArrayList_CustomFieldSerializer.serializeInstance(Arrays.java:34)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeImpl(ServerSerializationStreamWriter.java:786)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:667)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:153)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:585)
at com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:605)
at com.google.gwt.user.server.rpc.RPC.encodeResponseForSuccess(RPC.java:471)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:563)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
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 io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
在序列化/反序列化数组中似乎存在一些问题。请您帮忙解决这个错误。
【问题讨论】:
可能是这篇文章的副本:***.com/questions/22707020/… 该类是gwt-dev
库的一部分,它被标记为provided。你确定网络服务器提供它吗?
由于 gwt-dev 依赖仅在编译时才需要,我已将其范围标记为已提供。我认为 gwt-dev.jar 不应捆绑在 WAR 中。
@Grai。这不是重复的,因为在这种情况下引发的错误与数组序列化/反序列化有关。
尝试至少升级到2.5.1版本,见github.com/gwtproject/gwt/issues/7689和code.google.com/archive/p/google-web-toolkit/issues/7527
【参考方案1】:
我通过将 gwt-servlet jar 版本从 2.5.0 升级到 2.5.1 解决了这个异常。
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<version>2.5.1</version>
</dependency>
【讨论】:
以上是关于java.lang.NoClassDefFoundError: com/google/gwt/core/client/GWTBridge的主要内容,如果未能解决你的问题,请参考以下文章