websphere中解决一个NoClassFoundException问题
2016-03-25 22:32
711 查看
近几年做的JavaEE项目都是以Tomcat为运行环境,已经很久没有碰过websphere了。
最近要在一个websphere项目中做点改动,由于改动很少,并且本地无法测试,就决定直接去QA环境修改并测试,以下是改动步骤(没有admin console的权限):
1. 运行脚本停止application server;
2. 到.ear目录下放弃新增加的.jar包,并修改.war/WEB-INF下几个应用的配置文件;
3. 重启application server;
满怀希望地检查SystemOut.log,但很失望地看到了NoClassFoundException,明明那个class就在新添加的jar包里。怀疑有什么配置文件指定了jar包的加载,但检查了.ear/META-INF/MANIFEST.MF文件,并没有指定jar包。然后后种怀疑,比如cache没有更新,被一个同名的包覆盖,配置成了multiple class loader等等,经历各种尝试,比如重新打ear包并部署,解压了.jar并把.class放置到.ear/.war/WEB-INF/classes下,反编译查看源代码等等,也不怕麻烦地私人问了几个公司外的websphere运维人员等终究不得其解。
就这样过了几天到今天,让公司的运维人员导出class loader view,所有的class loader一目了然,但新添加的jar包并不在其中。突然恍然大悟,原来还有个.ear/.war/META-INF/MANIFEST.MF文件没有检查,一查果然文件有列出所有需要加载的jar包。所以需要弄的就很简单了,直接修改MANIFEST.MF文件,重启问题解决了。
看来是近来tomcat用多了,都是直接扔WEB-INF/lib下习惯了。
最近要在一个websphere项目中做点改动,由于改动很少,并且本地无法测试,就决定直接去QA环境修改并测试,以下是改动步骤(没有admin console的权限):
1. 运行脚本停止application server;
2. 到.ear目录下放弃新增加的.jar包,并修改.war/WEB-INF下几个应用的配置文件;
3. 重启application server;
满怀希望地检查SystemOut.log,但很失望地看到了NoClassFoundException,明明那个class就在新添加的jar包里。怀疑有什么配置文件指定了jar包的加载,但检查了.ear/META-INF/MANIFEST.MF文件,并没有指定jar包。然后后种怀疑,比如cache没有更新,被一个同名的包覆盖,配置成了multiple class loader等等,经历各种尝试,比如重新打ear包并部署,解压了.jar并把.class放置到.ear/.war/WEB-INF/classes下,反编译查看源代码等等,也不怕麻烦地私人问了几个公司外的websphere运维人员等终究不得其解。
就这样过了几天到今天,让公司的运维人员导出class loader view,所有的class loader一目了然,但新添加的jar包并不在其中。突然恍然大悟,原来还有个.ear/.war/META-INF/MANIFEST.MF文件没有检查,一查果然文件有列出所有需要加载的jar包。所以需要弄的就很简单了,直接修改MANIFEST.MF文件,重启问题解决了。
看来是近来tomcat用多了,都是直接扔WEB-INF/lib下习惯了。
相关文章推荐
- java结合WebSphere MQ实现接收队列文件功能
- Websphere MQ 7.0.0 For Linux版安装
- webSphere 集成软件平台
- WebSphere密码遗忘的2种解决方案
- Websphere information and knowledge
- 删除WebSphere
- wps 使用中文ID
- IBM WebSphere Portal v8.5独立服务器(Linux)数据库迁移_DB2版本
- IBM WPS v8.5 数据迁移至DB2时因数据库用户权限不足引起的迁移失败问题解决示例
- 应用的Session冲突
- 关于java和.net的一些感想
- 关于websphere v6的采用log4j输出日志信息的问题
- BPM 工作流实例无法删除. 4000 导致应用模块无法卸载处理办法
- VC下载的问题,请高手指点
- 有谁能推荐比较好的websphere的培训机构?
- Sring注解开发详解
- GeniusWiki 2.01发布了
- Hibernate入门教程01
- spring配置事务管理