1.weblogic安装部署应用工程后,一切正常;
2.浏览器敲击登陆页:http://127.0.0.1:7001/ProjecName/xxxx......
报错:Type mismatch: cannot convert from Tag to JspTag
3.百度:
3.1 最多的原因就是说工程的servelt-api.jar和weblogic下的jar冲突了,然后删掉就可以了。。。。。。;
但是我找工程下的lib目录,未发现什么servelt-api.jar也并未在webligic的安装目录下的lib或者common找到servelt-api.jar
3.2 还有的说是jsp的解析是依赖于jstl.jar,standard.jar这两个包,但是工程下确实没这个包,别人可以运行,我不可以运行,这就说明了,应该不是这个原因;
4.思考:
基本上都说出现这个错是jar冲突的原因,所以jar冲突确实是很大可能,那冲突是怎么个冲突法?
我想到了jar包的加载顺序,我查了一下工程的weblogic.xml配置详解:
https://www.cnblogs.com/winclpt/articles/5012436.html
这里有这么一段:
图1 <container-descriptor>标签配置含义
如果设置为true,则表明weblogic在启动时,以工程WEB-INF下的jar为优先。。。。。
5.立刻查看工程的weblogic.xml配置,发现:
图2 本地工程的weblogic.xml配置
what?逗我?。。。。。喝口水冷静冷静,思考:
网上为什么要设置为true就解决了冲突问题呢?可能是weblogic的jar包太老,而加载到weblogic中的包的话就可能用不了了,那就指定使用工程中的包就好了,我想是这个意思,至于jar的加载机制,我还是要补补书本知识。。。。。我想我的weblogic是官网最新的版本,很可能我的weblogic中的包比工程的要新很多(因为工程还是基于JDK1.5开发的。。。。。),那我就不需要指定优先使用工程下的jar包,抱着试一试的心态,我修改了配置文件,如下:
图3 修改后本地工程的weblogic.xml配置
5.重启weblogic,再敲登陆地址页,成功。。。。。其实我只是个特例,应该很多人要改成true才会成功的。。。。。。