dwr框架报SecurityException异常的一个可能原因:类加载问题
来源:互联网 发布:吉视传媒网络宽带连接 编辑:程序博客网 时间:2024/06/06 05:55
项目有个模块用了dwr框架,本来是正常的,今天突然项目现场来了个电话说有问题。
不会吧,开发环境还正常运行着呢,而且现场的包还是我出的。
从日志看到的错误是java.lang.SecurityException: No class by name: xxx,难道我出的包有问题?
检查了现场环境部署的文件,字节码文件配置文件一个没少;又检查了下dwr.xml和web.xml的文件内容,也没发现什么不对劲的。
网上搜索了一下相关的报错,无非就classpath、配置文件错误之类的,也没找到有用的信息。
关键是开发环境是正常的,常规检查无误后差不多可以断定是环境问题了。
下一招就是程序员的杀手锏,重启服务器。
重启后终于有点小发现,应用启动初始化过程出错了。Error setting class=com.xxx.Xxx on org.directwebremoting.create.NewCreator
java.lang.IllegalArgumentException: Class not found: com.xxx.Xxx
赶紧也重启了下开发环境,并没发现这个错误。
用google瞎找一番,发现跟我碰到同样问题的人还不少,不过都没能解决我的问题,各种求高手。
最终,互联网还是没能帮我解决这个问题。
问题还是要解决的,只能靠自己找原因了。首先,代码是一样的,但开发环境和现场环境运行结果不一样,最大可能就是部署问题了。
操作系统、中间件、数据库,最有可能的是中间件问题,开发环境是was6.0,而现场环境是was7.0。
不过呢,was7.0之前也是能正常运行这个模块的,只是今天才出现这个问题。
虽然觉得差不多是was的问题,但还是没法明确说出是哪里的问题,于是问了现场同事,这两天有没有改过什么配置。
这一问就水落石出了。
原来他昨晚测试的时候在was控制台改了类装载策略做测试忘记改回来了。
现在现场was7.0中,WAR class loader policy选的是Class loader for each WAR file in application(对应was6中文应该是叫模块),而我们是ear程序包,第三方依赖都统一放在ear文件夹下面,正常情况下是要选择Single class loader for application(对应was6中文应该是叫应用程序)。
果然,现场同事改回single后就正常了,问题算告一段落。
回想碰到的这个问题,费了那么大周折才找到原因,仔细想想有点不应该。
首先基本可以确定代码是正确的(开发环境没发现同样的问题),其次日志报错找不到类,而找不到的这个类又确实存在正确的classpath下,那就应该考虑类加载的问题了,终究还是层次不够高啊。
- dwr框架报SecurityException异常的一个可能原因:类加载问题
- “找不到或无法加载主类”该问题出现的一个可能原因
- DWR 报错:Error: java.lang.SecurityException, Session Error 和 Allocate exception for servlet 问题的解决办法
- 未能加载调试符号 的一个可能原因
- 报堆栈错误问题,可能的几个原因
- 在android的service中启动一个通知,点击通知无法启动activity,报一个SecurityException异常
- mac客户端界面卡顿问题的一个可能原因
- DWR框架实现服务器推送时的一个小问题
- 加载.so库时UnsatisfiedLinkError异常的一个原因
- 404问题可能的原因
- 继承ListActivity报错的可能原因
- c 调用 python 异常的可能原因
- 空指向异常错误的可能原因
- 空指针异常可能出现的原因
- vmware不能加载USB可能的原因
- webview加载网页的视频,不动了,可能产生的一个原因
- 网页变形的一个可能原因
- fmdbqueue dealock可能的一个原因
- C#调用非托管C++DLL中的函数
- nginx location常用语法
- UIApplication sharedApplication详细解释-IOS
- jquery 查询元素技巧
- Google中国2014校园招聘笔试Round A China New Grad Test Problem B. Rational Number Tree
- dwr框架报SecurityException异常的一个可能原因:类加载问题
- 数据结构与算法B代码编写作业,字符串插入,解题报告&AC代码
- poj 1244 Slots of Fun
- Android开发中设置无标题
- iOS Objective-C 與 PHP DES 加解密演算法實作
- 一个做得很好的电子产品测评类网站:Zealer
- c——文件读写
- 跟我学ROS
- Android——自动完成输入框提示功能的菜单_AutoCompleteTextView