JSF 在 weblogic 上部署出现 UnsupportedOperationException
最近接手一个已经上线很久项目,做运维工作,使用了JSF,部署在weblogic上,前任运维走的时候仍给我一个tomcat5.5,说是调试bug的话使用tomcat就行,一直没出问题.
可是昨天公司的测试服务器挂掉了,恢复后重新安装了weblogic,但是把项目部署上去之后就出问题了.
启动没有问题,只要一点首页就会抛出
java.lang.UnsupportedOperationException
at javax.faces.context.FacesContext.getELContext(FacesContext.java:138)
at javax.faces.component.UIViewRoot.setLocale(UIViewRoot.java:896)
...
让人很是郁闷,于是开始了漫长的解决之路....
网上也有很多类似的问题,因为是 getELContext 这个方法出错,所以很多问题都是因为EL包冲突造成的,我也把项目中的 commons-el.jar 删掉,结果启动都失败,只好又加回来
困惑了很久,但是问题的根本应该还是包冲突 开始在项目里一个一个包查看,突然发现有一个很诡异的 javaee.jar,抱着试试看的态度把它删掉,结果问题解决了!
看来想法是正确的,问题确实处在包冲突上面,这个javaee包可能与weblogic里面的包有冲突,所以造成这个错误.包冲突害死人啊,抛出来的异常都非常诡异
如果有其他困惑于此问题的coder,请查看你的包是否有冲突...