BIRT 2.5 ถูกปรับใช้กับ Xerces jar ใน WEB-INF/lib พ่น NullPointerException

ดังนั้นฉันจึงมีปัญหาเดียวกันกับที่คนอื่นอธิบายไว้ที่นี่: birt-exchange

ฉันได้รวม BIRT เข้ากับเว็บแอปพลิเคชันที่มีอยู่ซึ่งต้องใช้ xerces jar (ของฉันคือเวอร์ชัน 2.5) และมีข้อยกเว้นต่อไปนี้เกิดขึ้นเมื่อฉันพยายามดูรายงาน:

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)

ฉันได้ดูรายงานสาธิตแบบผสานรวมสำเร็จแล้ว (รวมอยู่ในการดาวน์โหลดรันไทม์ BIRT) กับแอปพลิเคชันที่มีอยู่ของฉัน แต่ไม่มีแผนภูมิรวมอยู่ในรายงานของฉัน การติดตามสแต็กบ่งชี้ว่าแผนภูมิมีความแตกต่างระหว่างไม่ทำงานและทำงาน

ไม่มีใครมีความคิดใด ๆ ? ฉันไม่สามารถลบ xerces jar ได้เนื่องจากแอปที่มีอยู่ของฉันจะไม่สามารถปรับใช้ได้ มีการบอกให้ BIRT เพิกเฉยต่อ jar อื่นๆ ที่อาจมีอยู่ในไดเร็กทอรี WEB-INF/lib หรือไม่?

ในกรณีที่เกี่ยวข้อง เซิร์ฟเวอร์เว็บแอปของฉันคือ Tomcat 5.5


person Ed .    schedule 08.01.2010    source แหล่งที่มา


คำตอบ (2)


ฉันเชื่อว่าฉันพบปัญหาแล้ว

ภายใต้ไดเร็กทอรี WEB-INF/platform/plugins (โดยที่ Platform เป็นไดเร็กทอรีเฉพาะ BIRT) จะมี jar ชื่อ org.apache.xerces_2.9.0.v200909240008.jar

ฉันอัปเดต Xerces jar เป็นเวอร์ชัน 2.9 และดูเหมือนว่าจะใช้งานได้...หวังว่าจะช่วยเหลือใครก็ตามที่อาจประสบปัญหานี้เช่นกัน!

person Ed .    schedule 08.01.2010

มีปัญหาเดียวกัน ในกรณีของฉัน มันกลายเป็น Xerces เวอร์ชันเก่าบน classpath (2.4) การลบอันนั้นออกช่วยแก้ปัญหาได้

person Nicolas Mommaerts    schedule 11.01.2012