【问题标题】:Get ClassNotFound exception calling greetServlet when GWT Starter app is deployed on Tomcat当 GWT Starter 应用程序部署在 Tomcat 上时,获取 ClassNotFound 异常调用 greetServlet
【发布时间】:2013-01-29 04:29:13
【问题描述】:

环境:Windows 7、Eclipse、GWT 2.5、Tomcat7、Java jre7

创建了一个 GWT Web 应用项目并让示例代码生成。该应用程序在 Eclipse 中以调试模式运行良好(无需任何代码更改)。 GWT 在同一台机器上编译和部署在 Tomcat7 上。当发出 RPC 请求时,获取ClassNotFoundException 用于服务实现class GreetingServiceImpl。来自 Tomcat7 的日志如下。

是否需要添加生成的示例代码中缺少的一些设置?我在网上找不到任何答案。我有点被屏蔽了……请指教。

----------------
Jan 28, 2013 11:55:34 AM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet greetServlet as unavailable
Jan 28, 2013 11:55:34 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet greetServlet
java.lang.ClassNotFoundException: com.test.sample.server.GreetingServiceImpl
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1137)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:858)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
----------------

【问题讨论】:

  • 什么是 GreetingServiceImpl?它是部署在 JAR 中还是应该直接复制到 WEB-INF/lib 中?
  • 在这里查看我的答案stackoverflow.com/questions/15144527/…。它应该会有所帮助。

标签: eclipse gwt tomcat service classnotfound


【解决方案1】:

尝试解压您的 WAR 文件并搜索以确保包含 GreetingsServiceImpl 的 JAR 文件位于 /WEB-INF/lib 中,或者 GreetingsServiceImpl 类位于 /WEB-INF/classes 中。

如果不知道 GreetingsServiceImpl 是什么以及它是如何合并到您的构建中的,很难说要查看哪个文件夹。

【讨论】:

  • 仅供参考:GreetingServiceImpl 是在新 GWT 项目的示例/演示代码中生成的 servlet(使用 Google Plugine for Eclipse 向导或 gwt-maven-plugin 原型)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 2011-08-10
相关资源
最近更新 更多