java.lang.NoClassDefFoundError:org / mapdb / DBMaker

时间:2014-11-20 10:40:52

标签: java database gwt mapdb

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

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

DB db;

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

错误在第三行,并且是:

  

nov 20,2014 11:20:30 AM   com.google.appengine.tools.development.ApiProxyLocalImpl log GRAVE:   javax.servlet.ServletContext log:调度传入时发生异常   RPC调用com.google.gwt.user.server.rpc.UnexpectedException:Service   方法'public abstract java.lang.String   com.sample.Doodle.client.GreetingService.greetServer(java.util.ArrayList中)   抛出java.lang.IllegalArgumentException'引发意外   exception:java.lang.NoClassDefFoundError:org / mapdb / DBMaker

2 个答案:

答案 0 :(得分:0)

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

如果您使用Eclipse,请选择您的项目并查看“问题”选项卡。可能存在警告,即服务器上将无法使用特定资源。右键单击此警告,然后选择"复制到..."选项。或者手动将此jar添加到此文件夹中。

答案 1 :(得分:0)

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