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

classloader常见问题总结的更多相关文章

  1. JBoss类加载机制 ClassLoadingConfiguration

    http://sylven.iteye.com/blog/577063 类仓库优先级从低到高 1.classpath.lib目录 2.由已部署的应用程序的所有类./server/{server_nam ...

  2. 深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题

    一.概述   定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的java类型.类加载和连接的过程都是在运行期间完成的. 二. 类的 ...

  3. 使用Powermock进行单元测试,以及常见问题的处理

    1. 引言 在进行单元测试时,经常遇到被测方法依赖外部对象和环境,如需要数据库连接,网络通信依赖等,需要进行大量的初始化工作,这时可以采用powermock+mockito对被测对象进行模拟,通过录放 ...

  4. 【转】hive简介安装 配置常见问题和例子

    原文来自:  http://blog.csdn.net/zhumin726/article/details/8027802 1 HIVE概述 Hive是基于Hadoop的一个数据仓库工具,可以将结构化 ...

  5. 【转】 hive简介,安装 配置常见问题和例子

    原文来自:  http://blog.csdn.net/zhumin726/article/details/8027802 1 HIVE概述 Hive是基于Hadoop的一个数据仓库工具,可以将结构化 ...

  6. Java编程最差实践常见问题详细说明(1)转

    Java编程最差实践常见问题详细说明(1)转     原文地址:http://www.odi.ch/prog/design/newbies.php 每天在写Java程序, 其实里面有一些细节大家可能没 ...

  7. Java编程最差实践常见问题详细说明(2)转

    Java编程最差实践常见问题详细说明(2)转 2012-12-13 13:57:20|  分类: JAVA |  标签:java  |举报|字号 订阅     反射使用不当  错误的写法: Java代 ...

  8. Spring常见问题总结

    1. 什么是 Spring 框架? Spring 是一种轻量级开发框架,旨在提高开发人员的开发效率以及系统的可维护性.Spring 官网:https://spring.io/. 我们一般说 Sprin ...

  9. JAVA线上常见问题排查手段(小结)

    在平时开发过程中,对于线上问题的排查以及系统的优化,免不了和Linux进行打交道.每逢大促和双十一,对系统的各种压测性能测试,优化都是非常大的一次考验.抽空整理了一下自己在线上问题排查以及系统优化的一 ...

随机推荐

  1. BZOJ 3022 [Balkan2012]The Best Teams(扫描线+线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3022 [题目大意] 给定n个球员,第i个球员年龄为AGEi,水平为SKILLi. 没有 ...

  2. 活动中使用提示框(Toast)

    任务名称:活动中使用Toast 任务现象:点击button时,会弹出提示框:You Click Button 步骤 1.创建一个项目,新建活动和加载布局.参考: http://8c925c9a.wiz ...

  3. lnmp配置信息 4核8g优化

    MYSQL   my.conf# The following options will be passed to all MySQL clients[client]#password       = ...

  4. EF 通用数据层类

    EF 通用数据层父类方法小结 转载:http://www.cnblogs.com/yq-Hua/p/4165344.html MSSql 数据库 数据层 父类 增删改查: using System; ...

  5. 移动端调试神器(eruda)

    在日常的移动端开发时,一般都是试用chrome浏览器的移动端模式进行开发和调试,只有在chrome调试完成,没有问题了才会上到真机测试,移动端开发的一大问题就在于此, 各种品牌各种型号手机,手机中各种 ...

  6. Ubuntu下轻松安装virtualbox

    转自:http://blog.csdn.net/flm2003/article/details/8168628 以下假设你的Ubuntu系统版本为11.10的64位版本,进行如下操作: 1.到http ...

  7. Jenkins升级;yum 安装软件升级

    1.使用yum安装的jenkins升级方法: 先升级yum yum update 后升级jenkins yum update jenkins 但是上面的方法,限制于yum的版本,不能更新到jenkin ...

  8. Mybatis数据库操作的返回值

    mybatis配置 <!-- 配置mybatis --> <bean id="sqlSessionFactory" class="org.mybatis ...

  9. CentOS 下 LNMP 环境配置

    安装配置 Nginx 安装配置 MySQL 安装配置 PHP Nginx 与 PHP-FPM 集成 环境配置验证   LNMP 环境代表 Linux 系统下 Nginx + MySQL + PHP 网 ...

  10. Linux now!--网络配置

    第一种:使用命令修改(直接即时生效,重启失效) #ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up 说明: eth0是第一个网卡,其他依次为eth1 ...