java.lang.ClassNotFoundException: com.google.gwt.user.client.rpc.RemoteService

Posted

技术标签:

【中文标题】java.lang.ClassNotFoundException: com.google.gwt.user.client.rpc.RemoteService【英文标题】: 【发布时间】:2013-12-09 22:26:41 【问题描述】:

在 Tomcat 6 中部署我的 war 文件时出现以下异常

所以我尝试通过使用 webAppCreator 只使用最简单的 gwt 项目:

它试图加载的类不在 gwt-servlet.jar 中,但确实存在于 gwt-user.jar 中。所有地方都说我不需要部署 gwt-user.jar。这是 gwt 2.5.1。帮助!!!

使用webAppCreator如下:

webAppCreator com.mytest.TestGwtRpc

然后使用 build.xml 创建战争文件。部署在Tomcat 6. 启动并点击发送按钮,得到以下信息:

java.lang.NoClassDefFoundError: com/google/gwt/user/client/rpc/RemoteService

根本原因

【问题讨论】:

你编译过 GWT 源代码吗? REmoteService 是一个客户端接口,不应部署在服务器上。 服务器端实现但是实现了扩展 RemoteService 的接口:[public class GreetingServiceImpl extends RemoteServiceServlet implements GreetingService] [public interface GreetingService extends RemoteService] 【参考方案1】:

RemoteService 肯定在 gwt-2.5.1 的gwt-servlet.jar 中。

所以试着解压你的war文件,并确认gwt-servlet.jar在

war/WEB-INF/lib/gwt-servlet.jar

我想,罐子可能不在那里?但如果是,解压gwt-servlet.jar,并验证类在

com/google/gwt/user/client/rpc/RemoteService.class

如果它确实存在,那么部署可能会发生其他事情(可能清理 tomcat 的工作目录,并确保没有部署其他可能导致错误的战争,...)

【讨论】:

它肯定不在我的 2.5.1 gwt-servlet.jar 中。我做了一个解压缩,gwt-servlet.jar 中没有那个文件。我有来自“tar -vtf gwt-servlet.jar”的文件列表,而且 RemoteService 肯定不存在。 我从 GWT maven 下载了 gwt-servlet-2.5.1.jar,它就在其中,所以我会尝试使用它。谢谢!由于某种原因,GWT SDK 下载附带的那个没有,或者至少是我的那个。 有趣 - 对我来说,Maven 版本和 GWT 2.5.1 SDK 下载的版本都包含该类......但我最近遇到了一些 GWT jar 损坏的人,非常神秘。

以上是关于java.lang.ClassNotFoundException: com.google.gwt.user.client.rpc.RemoteService的主要内容,如果未能解决你的问题,请参考以下文章