java.lang.ClassCastException解决方法

最近的JAVA工程中用到了DB4O,确实是一个不错的数据库,第一次用到存储对象的数据库感到还挺新鲜的,对一个ObjectContainer进行基本的操做,理解起来要比关系数据库来得直观。可是使用这种数据库很容易产生数据的冗余,否则的话查询起来也挺麻烦的;另外在数据的更新方面也要十分当心,数据很容易由于疏忽没有写进数据库。java

在利用它进行WEB开发的过程当中,遇到了一个很奇怪的问题:执行下面的语句web

ObjectSet<Ids> allIds =db.queryByExample(Ids.class);数据库

此语句查询数据库中全部的Ids类的对象,可是很奇怪,返回的是com.db4o.reflect.generic.GenericObject,直接致使后面的赋值出现了问题。为何会出现这个问题呢?我琢磨了很久,最后终于在不断的尝试后发现了问题,问题在于db4o-7.12.145.14409-all-java5这个JAR包在%JAVA_HOME%/jre/lib/ext下和WEB工程的WEB-INF\lib目录下都存在,致使冲突的产生,将任意一个删除便可解决问题,这也许不是一个特例,在其余的状况下不知道会不会遇到这样的错误。服务器

可是从web工程的角度来说,最好仍是将所须要的jar文件放置在对应工程的WEB-INF\lib目录下,方便web工程的转移,也使得工程的依赖结构清晰,减小没必要要的麻烦。固然,若是web工程所需的servlet须要直接在工程下产生,这时就须要将所需的外部JAR放置到jre/lib/ext目录下,这样编译才会经过。ide

建议仍是使用ECLIPSE等工具,直接在服务器上运行和测试,没有问题后将WebContent下的东西拷到服务器目录下,方便查错,同时也减小相似于上述的错误。工具

给本身提个醒,也但愿对于其余朋友有所帮助java.lang.ClassCastException解决方法测试

相关文章
相关标签/搜索