Я использую Jasper Report для запуска отчетов с использованием jdk1.4 и tomcat 4.1. Я получаю следующую ошибку. У меня есть xalan-2.7.1.jar, xercesImpl.jar и serializer-2.7.1.jar
java.lang.IllegalAccessError: org/apache/xml/serializer/ExtendedContentHandler на org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1321) на org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java: 2400) на org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2270) на org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1356) на org.apache.xalan.transformer. TransformerImpl.run(TransformerImpl.java:3447) в org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:408) в 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.im pl.XMLDocumentScannerImpl $ TrailingMiscDispatcher.dispatch (Неизвестный источник) в org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument (Неизвестный источник) в org.apache.xerces.parsers.XML11Configuration.parse (Неизвестный источник) в org.apache.xerces. parsers.DTDConfiguration.parse (Неизвестный источник) в org.apache.xerces.parsers.XMLParser.parse (Неизвестный источник) в org.apache.xerces.parsers.AbstractSAXParser.parse (Неизвестный источник) в org.apache.xalan.transformer. TrAXFilter.parse(TrAXFilter.java:164) в org.apache.fop.apps.Driver.render(Driver.java:481)
Я использую следующий код для вывода отчета
ByteArrayOutputStream out = new ByteArrayOutputStream(); Driver driver = new Driver(); driver.setRenderer(Driver.RENDER_PDF); driver.setOutputStream (уходит); driver.render(input.getParser(), input.getInputSource());
Заранее спасибо.
Удалите сериализатор-2.7.1.jar и замените его на serializer-2.7.0.jar, затем перезапустите. Похоже, что это известная и документированная проблема с классами в банке serializer, противоречащими классам в более новых версиях xalan, xerces.
Справка:
http://support.esri.com/de/knowledgebase/techarticles/detail/33857