org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.AnnotationProcessor
这几天来公司,公司的SVN坏掉了,然后项目还比较大,是一个分布式的,然后同事就把项目发我了。我在myeclipse里面导入项目了,把相应的jar包也建了个人的library导入了项目,现在项目不报错了,但是当我部署到tomcat启动服务器后,访问入口包了这么一个错:java.lang.ClassCastException: org.apache.catalina.util.DefaultAnnotationProcessor
cannot be cast to org.apache.AnnotationProcessor
上面的报错意思就是说类型转换出错。我当时一看这个错应该不是代码级别的错误,遇见这种jar包冲突肯定是导入jar重复了。然后去百度下,网上的博客里面关于这个错误的处理也挺多,这里我自己总结整理下。
首先出现这个错的原因是:是tomcat的lib文件夹jar包和项目的lib文件下的jar包冲突了。Tomcat中catalina.jar和jasper.jar都有AnnotationProcessor接口,所以运行时,就出错了:java.lang.ClassCastException: org.apache.catalina.util.DefaultAnnotationProcessor。检查是不是这个原因的话,可以去翻自己项目的build
path,看看导入的包是不是重复导入了tomcat下lib包。我自己去看了一下,还真的是,那意思就是说部署项目在tomcat下面的时候这些包会自动放入我们的项目的path里面,但是我们自己的项目里面又有这些包了,相当于是这些包就导了2边,所以jar包冲突了,报了上面那个类型转换异常。
有2种解决的办法:1,把项目下lib文件下和tomcat的jar的重复的全部删除。也就是说把自己的项目里面重复导入tomcat lib下面的那些包都去掉,由于我是同事直接发给我的项目,里面还有好多的项目是java项目,所以我的项目里面要是直接去掉这些包的话代码就会报错,所以我采取了第2种方式
2,修改了tomcat里的context.xml文件,在context 元素下添加 <Loader delegate="true" />,现在就正常了。
百度了下这个Loader元素,关于它的解释如下,注意下delegate这个元素就好了。
Loader对象可出现在Context中以控制Java类的加载。虽然可以改变loadet类,不过一般不会这样做,所以在下面的属性中,我们们列出了标准的属性和“一般”类加载器所接受的属性。
属性:className、含义:org.apache.catalina.Loader实现类名、默认值:org.apache.catalina.loader.WebappClassLoader
属性:delegate、含义:True代表使用正式的Java代理模式(先询问父类的加载器);false代表先在Web应用程序中寻找。警告:如果不知道如何处理,则不要改变这一属性值、默认值:FALSE
属性:loaderClass、含义:类加载器、默认值:org.apache.catalina.loader.WebappClassLoader
属性:reloadable、含义:与Context下的意义相同。这时的值会改写Context中的值、默认值:FALSE
属性:workDir、含义:存放临时文件的目录、默认值:CATALINA_BASE下的临时目录(如果不显示设定CATALINA_TOME的值,则是CATALINA_BASE)
org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.AnnotationProcessor的更多相关文章
- 转载:org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.Annotation
转载:org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.Annotation (2012 ...
- JAVA错误:org.apache.jasper.JasperException: java.lang.ClassCastException:org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apach
解决方法一(一般情况加均可解决问题): 修改了tomcat里的context.xml文件,在context 元素下添加 <Loader delegate="true"/&g ...
- org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.ap解决方案
非常可能是因为tomcat的lib文件夹jar包和项目的lib文件下的jar包冲突了 把项目下lib文件下和tomcat的jar的重复的全部删除. 注意,如果你是先建flex工程然后转成web形式的, ...
- org.apache.catalina.core.DefaultInstanceManager cannot be cast to org.apache.tomcat.InstanceManager
1.控制台报错信息 严重: Servlet.service() for servlet [jsp] in context with path [/Resource] threw exception [ ...
- SpringMVC文件上传报错org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest
错误信息: java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to or ...
- java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest
转自:https://blog.csdn.net/iteye_17476/article/details/82651580 java.lang.ClassCastException: org.apac ...
- 异常-----springmvc + ajaxfileupload解决ajax不能异步上传图片的问题。java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.
说明这个问题产生的原因主要是form表单上传图片的时候必须是Content-Type:"multipart/form-data,这种格式的,但是ajax在页面不刷新的情况下去加载的时候只会把 ...
- WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [] milliseconds.
编译安装tomcat-native和tomcat-deamon以后,发现toomcat启动很慢,好久才有响应.以下日志供参考: 11-Sep-2017 12:19:28.102 INFO [main] ...
- tomcat启动时间5分钟左右org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [342,445] milliseconds.
org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance ...
随机推荐
- python并发编程之多进程
一同步与异步 同步执行:一个进程在执行任务时,另一个进程必须等待执行完毕,才能继续执行 异步执行:一个进程在执行任务时,另一个进程无需等待其执行完毕就可以执行,当有消息返回时,系统会提醒后者进行处理, ...
- 用Vue开发一个实时性时间转换功能,看这篇文章就够了
前言 最近有一个说法,如果你看见某个网站的某个功能,你就大概能猜出背后的业务逻辑是怎么样的,以及你能动手开发一个一毛一样的功能,那么你的前端技能算是进阶中高级水平了.比如咱们今天要聊的这个话题:如何用 ...
- addEventListener attachEvent和解决IE 6 7 8 this指向错误
[JS] addEventListener attachEvent和解决IE 6 7 8 this指向错误 电梯直达 1# php 发表于 2014/4/13 01:17 | 只看该作者 ...
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)
前言 大家好,我是Rector 从今天开始,Rector将为大家推出一个关于创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar]的文章系列, ...
- 385cc412a70eb9c6578a82ac58fce14c 教大家破解md5验证值
Md5密文破解(解密)可以说是网络攻击中的一个必不可少的环节,是工具中的一个重要"辅助工具".md5解密主要用于网络攻击,在对网站等进行入侵过程,有可能获得管理员或者其他用户的账号 ...
- RAC+ASM 添加控制文件
环境介绍:11g RAC 使用 ASM 磁盘组,控制文件只有一个,需要进行添加 参照 MOS 文档 How to Multiplex Control File In RAC Database (文档 ...
- 我的第一次Pascal程序
今天刚刚来学点Pascal语言,都怪我买的书大多是用Pascal语言写的,所以我只能试着学一点咯! 来一段程序员最经典的Hello World! ; begin write('Hello World! ...
- Vijos P1103 校门外的树【线段树,模拟】
校门外的树 描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……, ...
- [bzoj4411] [Usaco2016 Feb]Load balancing
先离散化一下(也可以不用 枚举横坐标,用线段树维护两边纵坐标上的节点数. 每次在线段树上二分...(感觉似乎树状数组也行? #include<cstdio> #include<ios ...
- IDEA的破解安装以及汉化
IDEA是一款比eclipse用起来更好用的一款代码编辑器,本人之前也是一直在用eclipse来写代码,后来发现了IDEA用起来会更顺手,所以又转用IDEA了,今天给大家分享一下IDEA的下载安装破解 ...