WebSphere5.1类加载报错解决方案

编辑
文档创建者:文档助手1 (67727 )     浏览次数:1778次     编辑次数:7次     最近更新:真实姓名 于 2016-06-11     

1. 问题描述编辑

WebSphere5.1在部署报表工程的时候可能会出现如下错误:
[10-7-7 12:23:47:750 CST] 44a5ba79 WebGroup E SRVE0026E: [Servlet 错 误]-[javax.xml.namespace.QName: method getPrefix()Ljava/lang /String; not found]: java.lang.NoSuchMethodError: javax.xml.namespace.QName: method getPrefix()Ljava /lang/String; not found at com.sun.xml.stream.events.XMLEventAllocatorImpl.fillAttributes(XMLEventAllocatorImpl.java:186) at com.sun.xml.stream.events.XMLEventAllocatorImpl.getXMLEvent(XMLEventAllocatorImpl.java:78) at com.sun.xml.stream.events.XMLEventAllocatorImpl.allocate(XMLEventAllocatorImpl.java:54) at com.sun.xml.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:87) at com.fr.base.xml.XMLableReader.initRootElement(Unknown Source) at com.fr.base.xml.XMLableReader.createXMLableReader(Unknown Source) at com.fr.base.XMLFileManager.readInputStreamXML(Unknown Source) at com.fr.base.XMLFileManager.readXMLFile(Unknown Source) [10-7-7 12:23:52:875 CST] 44a5ba79 WebGroup E SRVE0026E: [Servlet 错 误]-[com/fr/web/core /ReportDispatcher]: java.lang.NoClassDefFoundError: com/fr/web/core /ReportDispatcher at com.fr.web.ReportServlet.doGet(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110) at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174) at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313) at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116) at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283) at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42) at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)

2. 报错原因编辑

由于FineReport使用了一些第三方的插件跟WebSphere5.1里面的插件相同,但是插件版本 不同(不同版本间方法的个数与实现可能不同),相同的插件只会加载一个版本如加载了WebSphere5.1中使用的版本,当报表端使用到该第三方插件时就可能会因为找不到某些类而报如上的错误。

3. 解决方案编辑

为了不发生找不到类的错误,就需要调整类加载顺序,确保服务器加载了FineReport下的第三方插件版本,具体步骤如下。
3.1 确定jar包位置
由上报错信息,找到报错中所示的类文件所在的jar包:D:\FineReport_8.0\WebReport\WEB-INF\lib下的fr-third-8.0.jarfr-core-8.0.jar下面
fr-third-8.0.jar\com\fr\third\javax\xml\namespace\QName.class
fr-core-8.0.jar\com\fr\web\core\ReportDispatcher.class
注:由于FineReport各个版本不同,jar包的名字会有所不同,一般性后面会带上大版本的版本号,比如说8.0版本,jar包名称为fr-third-8.0.jar
3.2 拷贝jar包

将这2个与报错相关的jar包拷贝到WebSphere5.1的WebSphere\AppServer\lib下面,重启WebSphere即可解决问题

附件列表


主题: 部署集成
标签: 暂无标签 编辑/添加标签
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?