【问题标题】:GWT 2.5.1 and IntelliJ debug mode, serializable exceptionGWT 2.5.1 和 IntelliJ 调试模式,可序列化异常
【发布时间】:2013-06-20 16:39:18
【问题描述】:

我正在为一个 GWT 项目运行 IntelliJ 12.1。我无法让 GWT 配置工作,我不断收到可序列化的异常。

我也在使用 maven 和 tomcat 并从 maven 运行 Web 应用程序项目。例如。我将项目/webapp 构建到目标目录并从该目录运行 tomcat。

错误:

java.lang.RuntimeException: com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: The response could not be deserialized

这是我的 GWT 配置设置:

-noserver -port 8080 -logLevel DEBUG -war /Users/bbrown/Projects/src/web/target/my-13.06.04-SNAPSHOT -startupUrl http://127.0.0.1:8080/home.html

讽刺的是,如果我运行远程调试,例如:

mvn gwt:debug -Dgwt.noserver=true

然后从 IntelliJ 启动远程调试(不使用 GWT 模式),我没有收到序列化错误。

类本身是一个简单的枚举。我正在进行一个简单的 rpc 服务调用,在初次调用时,我收到了上面的错误:

public enum Status implements Serializable, IsSerializable {
 Running, Disabled
}

我试图清除所有我能找到的缓存文件和目标目录,但我一直收到同样的错误。

如何运行 IntelliJ GWT 配置而不出现此错误?

运行:Mac10.7、Chrome、Tomcat7、IntelliJ12.1、gwt2.5.1

【问题讨论】:

  • 我猜在 intellij 端或其他地方有一个缓存文件没有被清除。那些 gwt.rpc 文件之一?我不知道哪个目录和什么不同步。
  • 我认为你需要编译GWT项目然后运行。每当您在 GWT 共享文件夹或 RPC 服务中进行任何更改时,您都应该在运行前编译 GWT。
  • 我已经完成了完整的 GWT 编译、清理(尽我所能),但仍然遇到同样的错误。
  • 我在让 Enums 正确使用 RPC 时遇到了很多问题。我最终只是为他们创建了一个包装 POJO(id,description)。

标签: java gwt tomcat intellij-idea gxt


【解决方案1】:

在整个项目上尝试mvn clean install(但我希望你尝试过...),在 GWT 部分也可以使用mvn gwt:clean。同时删除src/main/webapp/中的编译/临时文件。

如果真的是 IntelliJ 缓存的问题,请尝试File -> Invalidate caches

【讨论】:

  • 是的,我做了 mvn clenan。我还没有尝试过 mvn gwt:clean。我会试试的。还有无效缓存。
  • 我为类似的问题苦苦挣扎了半天。 gwt.rpc 文件未正确更新。 File -> Invalidate caches 解决了这个问题!谢谢!
【解决方案2】:

您是否在 maven GWT 插件中设置了输出目录?

有时,GWT 会输出源目录下的所有内容,并且不会被“mvn clean”清理。查找 .rpc 或 .cache.html 文件以找出 maven 将输出放在哪里并删除您没有自己编写的任何内容。

【讨论】:

    猜你喜欢
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2012-03-21
    • 1970-01-01
    • 2013-08-04
    • 2012-04-28
    • 2012-05-08
    相关资源
    最近更新 更多