h tp://yourenyouyu2008.iteye.com/blog/779707看到一些ClassNoFindException ,ClassCastException等异常首先应该想到是不是ClassLoader引起的。

各服务器的ClassLoader策略不同一致

同样的一个war在tomcat,jboss,weblogic等环境下不一定都能正常运行,是由于这些服务器的ClassLoader策略不完全一样,对包冲突的解决办法不一样。最好的办法是引入maven的包管理机制,根据不同的服务器生成不同的war。

java.lang.ClassCastException

Caused by: java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider
 at javax.persistence.Persistence.findAllProviders(Persistence.java:112)
 at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
 at org.jboss.seam.persistence.EntityManagerFactory.createEntityManagerFactory(EntityManagerFactory.java:85)
 at org.jboss.seam.persistence.EntityManagerFactory.startup(EntityManagerFactory.java:50)

这是一个基于jpa的web项目,同样的war在tomcat下运行是没有问题的,但在jboss下却包上面的异常。这说明正常情况下HibernatePersistence 应该能转换成PersistenceProvider,不能转换的原因就是这两个类是由不同的加载器加载的。搜索jboss classloader查找解决方案,设置server\default\deploy\JBoss-web.deploy\META-INF\JBoss-service.xml 文件中的<attribute name="UseJBossWebLoader">true</attribute>.

jboss classloader

http://www.blogjava.net/agapple/archive/2008/10/23/236142.html

java.lang.ClassNotFoundException:javax.el.ELResolver

有个初学jsf的同事在tomcat下运行jsf的官方demo,总时报java.lang.ClassNotFoundException: javax.el.ELResolver异常,而同样的tomcat,demo在别人的电脑上没有一点问题,百思不得其解时从网上搜到了下面的信息:如果把jsp-api.jar  或者servlet-api.jar放入到了 jdk   /jre/lib/ext包下面就会出现  java.lang.ClassNotFoundException: javax.el.ELResolver异常,解决方法,在jre/lib/ext包下面删除那两个包就行了。原文链接http://hi.baidu.com/java_hl/blog/item/cd93202a4c9a154a4ec22660.html

一检查她的jdk/jre/lib/ext包下确实有jsp-api.jar和servlet-api.jar两个jar,删除后一切正常。

按照往常的经验是不会将jsp-api.jar和servlet-api.jar放到jdk/jre/lib/ext下面的,她说建立的项目里的import javax.servlet总是报错,网上搜索到把jsp-api.jar和servlet-api.jar放到jdk/jre/lib/ext下面,进一步发现她建立的不是web项目,而是普通的maven项目(对初学者来说太复杂了)。

常见异常

java.lang.IllegalAccessError

java.lang.IllegalAccessError: tried to access class javassist.bytecode.StackMapTable$Writer from class org.jboss.seam.util.ProxyFactory

javasist版本冲突,seam使用了低版本的javasist,而运行时使用了高版本的javasist

最新文章

  1. Erlang--etc结构解析
  2. 第九章 硬件抽象层:HAL
  3. .html 、.htm 、 .shtml 以及 .shtm 四种扩展名的文件区别
  4. C#中字典集合HashTable、Dictionary、ConcurrentDictionary三者区别
  5. 开源文档管理工具Joomla的网站安装
  6. 第19章 queue队列容器
  7. C#中static静态变量的用法
  8. Python 如何跳出多重循环
  9. USACO Section 2.4 回家 Bessie Come Home
  10. Unity UGUI —— 鼠标穿透UI问题(Unity官方的解决方法)
  11. SQL Server Mobile 和 .NET 数据访问接口之间的数据类型映射
  12. python列表删除重复元素的三种方法
  13. linux教程之四
  14. WCF技术剖析之七:如何实现WCF与EnterLib PIAB、Unity之间的集成
  15. HDU 2018 undefined
  16. vue小demo易错点总结
  17. python中opencv的安装
  18. 禅道Bug等级划分标准
  19. 普通Splay详解
  20. hello C#

热门文章

  1. 【差分约束系统】【最短路】【spfa】CDOJ1646 穷且益坚, 不坠青云之志。
  2. 【递推】【组合计数】UVA - 11401 - Triangle Counting
  3. 【置换群/模拟】NOIP2005-篝火晚会
  4. 【单调队列】POJ2823-Sliding Window
  5. codevs 2185 最长公共上升子序列--nm的一维求法
  6. Web API使用记录系列(二)HelpPage优化与WebApiTestClient
  7. Java RSA加密算法生成公钥和私钥
  8. andriod inputbox
  9. Linux makefile 教程
  10. ylbtech-LanguageSamples-Hello World