我在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
答案 0 :(得分:0)
此错误表示服务器上没有类。将jar添加到类路径是不够的 - 您还需要将它添加到/WEB-INF/lib
文件夹中。
如果您使用Eclipse,请选择您的项目并查看“问题”选项卡。可能存在警告,即服务器上将无法使用特定资源。右键单击此警告,然后选择"复制到..."选项。或者手动将此jar添加到此文件夹中。
答案 1 :(得分:0)
当我更改已经存在的对象时,我遇到了同样的错误。 当DBMaker尝试创建现有数据库时,它会尝试将持久化对象映射到类路径中的现有类。如果类已更改签名 - 即名称或包 - 则无法映射到持久化对象,因此ClassNotFoundException。