(本文档仅供参考)
...
问题说明
正常情况下weblogic部署启动后会进行读取XML文件,这时候就会因为jar包冲突提示:javax.xml.stream.XMLInputFactory: Provider com.ctc.wstx.stax.WstxInputFactory not a subtype 或者 javax.xml.stream.XMLInputFactory: Provider com.ctc.wstx.stax.WstxInputFactory not a subtype 这类提示如下图:
...
实际部署因weblogic版本及系统环境不同,会出现冲突的jar包也可能是不同的,存在特殊情况,在部署的时候没有报这类错误,那正常情况下也不会删除这两个jar包,但在进行系统某些操作,比如说上传扩展包、恢复知识库等操作就报错了,举个例子:恢复知识库提示:导入失败:com.ctc.wstx.stax.WstxEventFactory cannot be cast to javax.xml.stream.XMLEventFactory ,错误如下图,这时候要如何解决?
解决方案
当遇到这类错误,特别是weblogic环境,我们首先要考虑是否是因为jar包冲突了,如何确认是否是jar包冲突,可以这样操作:
1、将报错提示的类名通过【系统监控】--》【类查找】--》输入类名后找到war包的加载路径,如下图。我们可以看到war包是存在这个类文件了,但是为什么调用的时候还是无法正常调用到,这时候基本可以确定是因为war包和中间件(weblogic、Tomcat、WebSphere等)下的jar包冲突了,我们可以考虑将war包的jar包删除,然后再重新部署,注意weblogic不能直接采用更新应用,需要先卸载smartbi,然后再重新部署smartbi,注意weblogic不能直接采用更新应用包,需要先卸载smartbi,然后再重新部署smartbi.war包。
如果此时环境无法进入到这个界面,可以找一个能正常访问的smartbi环境进行搜索具体的类加载文件是哪个jar包。
2、如果无法从类冲突确定,也可以从产品的部署文档查找,通常情况下weblogic部署smartbi容易出现类冲突,所以我们可以在官方的wiki文档上找到如何weblogic部署smartbi的文档,然后依据文档说明进行删除jar,如部署Smartbi到WebLogic 10WebLogic 12c部署Smartbi
Viewtracker |
---|