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的主要内容,如果未能解决你的问题,请参考以下文章