【问题标题】:java.lang.NoClassDefFoundError: org/mapdb/DBMakerjava.lang.NoClassDefFoundError: org/mapdb/DBMaker
【发布时间】:2014-11-20 10:40:51
【问题描述】:

我在 GWT 上使用 mapDB 时遇到问题,我在这一行中发现了错误:

File utilizzo = new File("saveme.db");

DB db;

db = DBMaker.newFileDB(utilizzo).closeOnJvmShutdown().make();

错误在第三行,是:

2014 年 11 月 20 日上午 11:20:30 com.google.appengine.tools.development.ApiProxyLocalImpl 日志坟墓: javax.servlet.ServletContext 日志:调度传入时出现异常 RPC 调用 com.google.gwt.user.server.rpc.UnexpectedException: Service 方法'公共抽象java.lang.String com.sample.Doodle.client.GreetingService.greetServer(java.util.ArrayList) throws java.lang.IllegalArgumentException' 引发了意外 异常:java.lang.NoClassDefFoundError: org/mapdb/DBMaker

【问题讨论】:

  • 您是否将所有库依赖项添加到您的类路径中?
  • 我将 mapdb-1.0.6 作为 jar 添加到库中

标签: java database gwt mapdb


【解决方案1】:

当我更改一个已经持久化的对象时,我遇到了同样的错误。 当 DBMaker 尝试创建现有数据库时,它会尝试将持久对象映射到类路径中的现有类。如果类已更改签名(即名称或包),则无法将其映射到持久对象,因此会出现 ClassNotFoundException。

【讨论】:

    【解决方案2】:

    此错误表示服务器上没有可用的类。将 jar 添加到类路径中是不够的 - 您还需要将其添加到 /WEB-INF/lib 文件夹中。

    如果您使用 Eclipse,请选择您的项目并查看“问题”选项卡。那里可能会出现警告,表明特定资源在服务器上不可用。右键单击此警告并选择“复制到...”选项。或者手动将这个jar添加到这个文件夹中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多