Java 在WEB-INF/lib中与Xerces jar一起部署的BIRT 2.5抛出NullPointerException

Java 在WEB-INF/lib中与Xerces jar一起部署的BIRT 2.5抛出NullPointerException,java,web-applications,birt,classloader,xerces,Java,Web Applications,Birt,Classloader,Xerces,因此,我遇到的问题与其他人在这里描述的几乎完全相同: 我已经将BIRT与需要xerces jar(我的是2.5版)的现有web应用程序集成,当我尝试查看报告时,会引发以下异常: java.lang.NullPointerException at org.eclipse.birt.chart.reportitem.ChartReportItemImpl.doCompatibility(ChartReportItemImpl.java:302) at org.eclipse.bir

因此,我遇到的问题与其他人在这里描述的几乎完全相同:

我已经将BIRT与需要xerces jar(我的是2.5版)的现有web应用程序集成,当我尝试查看报告时,会引发以下异常:

java.lang.NullPointerException
    at org.eclipse.birt.chart.reportitem.ChartReportItemImpl.doCompatibility(ChartReportItemImpl.java:302)
    at org.eclipse.birt.chart.reportitem.ChartReportItemImpl.deserialize(ChartReportItemImpl.java:282)
    at org.eclipse.birt.report.model.extension.PeerExtensibilityProvider.initializeReportItem(PeerExtensibilityProvider.java:582)
    at org.eclipse.birt.report.model.elements.ExtendedItem.initializeReportItem(ExtendedItem.java:305)
    at org.eclipse.birt.report.model.elements.ExtendedItem.doCheck(ExtendedItem.java:642)
    at org.eclipse.birt.report.model.elements.ExtendedItem.checkCompatibility(ExtendedItem.java:604)
    at org.eclipse.birt.report.model.parser.ModuleParserHandler.handleExtendedItemCompatibility(ModuleParserHandler.java:431)
    at org.eclipse.birt.report.model.parser.ModuleParserHandler.endDocument(ModuleParserHandler.java:393)
    at org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Source)
    at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
    at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
    at org.apache.xerces.impl.XMLEntityScanner.skipSpaces(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
    at org.eclipse.birt.report.model.parser.ModuleReader.readModule(ModuleReader.java:94)
    at org.eclipse.birt.report.model.parser.DesignReader.read(DesignReader.java:88)
    at org.eclipse.birt.report.model.core.DesignSessionImpl.openDesign(DesignSessionImpl.java:315)
    at org.eclipse.birt.report.model.api.SessionHandleImpl.openDesign(SessionHandleImpl.java:294)
    at org.eclipse.birt.report.engine.parser.ReportParser.getDesignHandle(ReportParser.java:158)
    at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:255)
    at org.eclipse.birt.report.engine.api.impl.ReportEngine.openReportDesign(ReportEngine.java:589)
    at org.eclipse.birt.report.service.ReportEngineService.openReportDesign(ReportEngineService.java:383)
    at org.eclipse.birt.report.utility.BirtUtility.getRunnableFromDesignFile(BirtUtility.java:594)
    at org.eclipse.birt.report.context.ViewerAttributeBean.getDesignHandle(ViewerAttributeBean.java:654)
    at org.eclipse.birt.report.context.ViewerAttributeBean.__init(ViewerAttributeBean.java:231)
    at org.eclipse.birt.report.context.BaseAttributeBean.init(BaseAttributeBean.java:233)
    at org.eclipse.birt.report.context.ViewerAttributeBean.<init>(ViewerAttributeBean.java:116)
    at org.eclipse.birt.report.context.BirtContext.__init(BirtContext.java:44)
    at org.eclipse.birt.report.context.BaseContext.<init>(BaseContext.java:69)
    at org.eclipse.birt.report.context.BirtContext.<init>(BirtContext.java:30)
    at org.eclipse.birt.report.servlet.ViewerServlet.__getContext(ViewerServlet.java:150)
    at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:243)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
java.lang.NullPointerException
在org.eclipse.birt.chart.reportitem.ChartReportItemImpl.docCompatibility上(ChartReportItemImpl.java:302)
在org.eclipse.birt.chart.reportitem.ChartReportItemImpl.deserialize上(ChartReportItemImpl.java:282)
在org.eclipse.birt.report.model.extension.PeerExtensibilityProvider.initializeReportItem(PeerExtensibilityProvider.java:582)上
位于org.eclipse.birt.report.model.elements.ExtendedItem.initializeReportItem(ExtendedItem.java:305)
位于org.eclipse.birt.report.model.elements.ExtendedItem.doCheck(ExtendedItem.java:642)
位于org.eclipse.birt.report.model.elements.ExtendedItem.checkCompatibility(ExtendedItem.java:604)
位于org.eclipse.birt.report.model.parser.ModuleParserHandler.handleExtendedItemCompatibility(ModuleParserHandler.java:431)
位于org.eclipse.birt.report.model.parser.ModuleParserHandler.endDocument(ModuleParserHandler.java:393)
位于org.apache.xerces.parsers.AbstractSAXParser.endDocument(未知源)
位于org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(未知来源)
位于org.apache.xerces.impl.XMLEntityManager.endEntity(未知来源)
位于org.apache.xerces.impl.XMLEntityScanner.load(未知源)
位于org.apache.xerces.impl.XMLEntityScanner.skipSpaces(未知源)
位于org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(未知源)
位于org.apache.xerces.impl.XMLDocumentFragmentScanneImpl.ScandDocument(未知来源)
位于org.apache.xerces.parsers.XML11Configuration.parse(未知源)
位于org.apache.xerces.parsers.DTDConfiguration.parse(未知源)
位于org.apache.xerces.parsers.XMLParser.parse(未知源)
位于org.apache.xerces.parsers.AbstractSAXParser.parse(未知源)
位于javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
位于org.eclipse.birt.report.model.parser.ModuleReader.readModule(ModuleReader.java:94)
位于org.eclipse.birt.report.model.parser.DesignReader.read(DesignReader.java:88)
位于org.eclipse.birt.report.model.core.DesignSessionImpl.openDesign(DesignSessionImpl.java:315)
在org.eclipse.birt.report.model.api.SessionHandleImpl.openDesign(SessionHandleImpl.java:294)
位于org.eclipse.birt.report.engine.parser.ReportParser.getDesignHandle(ReportParser.java:158)
在org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:255)上
在org.eclipse.birt.report.engine.api.impl.ReportEngine.openReportDesign(ReportEngine.java:589)上
位于org.eclipse.birt.report.service.ReportEngineService.openReportDesign(ReportEngineService.java:383)
位于org.eclipse.birt.report.utility.BirtUtility.getRunnableFromDesignFile(BirtUtility.java:594)
位于org.eclipse.birt.report.context.ViewerAttributeBean.getDesignHandle(ViewerAttributeBean.java:654)
位于org.eclipse.birt.report.context.ViewerAttributeBean.\uu init(ViewerAttributeBean.java:231)
位于org.eclipse.birt.report.context.BaseAttributeBean.init(BaseAttributeBean.java:233)
位于org.eclipse.birt.report.context.ViewerAttributeBean(ViewerAttributeBean.java:116)
在org.eclipse.birt.report.context.BirtContext.\uu init(BirtContext.java:44)上
位于org.eclipse.birt.report.context.BaseContext.(BaseContext.java:69)
在org.eclipse.birt.report.context.BirtContext上(BirtContext.java:30)
位于org.eclipse.birt.report.servlet.ViewerServlet.\uu getContext(ViewerServlet.java:150)
位于org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:243)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
我已经用我现有的应用程序成功地查看了集成的演示报告(包括BIRT运行时下载),但它没有包括图表,我的报告没有。堆栈跟踪表明图表是不工作和工作之间的区别

有人有什么想法吗?我无法删除xerces jar,因为我现有的应用程序将无法部署。有没有办法有效地告诉BIRT忽略WEB-INF/lib目录中可能包含的任何其他JAR


如果相关;我的web应用服务器是Tomcat 5.5。

我相信我已经找到了问题所在

在WEB-INF/platform/plugins目录下(其中platforms是一个特定于BIRT的目录),有一个名为org.apache.xerces_2.9.0.v200909240008.jar的jar


我将Xerces jar更新到2.9版,似乎可以正常工作……希望这能帮助任何可能遇到此问题的人

遇到了同样的问题,在我的例子中,它是类路径(2.4)上Xerces的旧版本。去掉那个就解决了问题