【问题标题】:java.lang.NoClassDefFoundError: com/google/gwt/core/shared/GWTBridgejava.lang.NoClassDefFoundError: com/google/gwt/core/shared/GWTBridge
【发布时间】:2015-04-01 15:50:11
【问题描述】:

我不知道为什么,但我在line 60 的Home.java 上得到java.lang.NoClassDefFoundError: com/google/gwt/core/shared/GWTBridge。

重现步骤:

  1. clone jenterprise 并打开 jenterprise 和 HelloWorld 项目
  2. 先构建 jenterprise,然后再构建 HelloWorld
  3. 运行 HelloWorld -> com.jenterprise.examples.helloworld.Begin
  4. 转至:http://localhost:8090/examples/HelloWorld/home

我正在尝试做的是使用onModuleLoad() 来更新 在另一个方法中执行一些其他逻辑之后,然后使用forward(request, response) 来显示 界面,即

public void main(HttpServletRequest request, HttpServletResponse response) {
        System.out.println("Running Home: main(HttpServletRequest request, HttpServletResponse response)");
        onModuleLoad();
        request.getRequestDispatcher("/index.jsp").forward(request, response);
}

【问题讨论】:

  • 第 60 行是对方法 onModuleLoad(); 的调用,您能发布更完整的堆栈跟踪吗?
  • 所以问题是final Button sendButton = new Button("Send");

标签: java gwt


【解决方案1】:

onModuleLoad() 是一个入口点方法,是由 GWT 编译器编译的客户端 GWT 代码的一部分。你不能在服务器端使用它。

【讨论】:

  • 请求处理发生在服务器上,而 onModuleLoad() 是编译成 JavaScript 并在浏览器中执行的客户端代码的一部分。它与过滤器或 Servlet 无关,这是因为您尝试将其称为服务器端,所以您遇到了错误。
【解决方案2】:

此错误表示所需的 jar 在构建路径上,但在运行时不可用。确保它包含在 WEB-INF/lib 文件夹中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    相关资源
    最近更新 更多