Ошибка «Плохая основная версия» при использовании Jasper-Reports на Websphere - PullRequest
1 голос
/ 24 февраля 2012

Когда я пытаюсь заполнить JasperReport в моем сервлете, работающем в Websphere 6.1, я получаю UnsupportedClassVersionError: Bad major version at offset=6.

Я полагаю, что скомпилированный JasperReport имеет другую версию (java 6?), Чем может выполнить jre на веб-сфере (это будет java 5), ​​но я не могу понять, почему Компиляция отчетов с помощью maven или в приложении (в сервлете) приводит к ошибке.

В соответствии с демонстрацией, предоставленной JasperReports, в которой также показано, как использовать ее с Java 1.5, я добавил следующую конфигурацию в jasperreports.properties:

.
org.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.codegen.TargetPlatform=1.5

Но ошибка все еще существует.

Язык, используемый в отчете, - это Java, так какой компилятор является правильным? net.sf.jasperreports.engine.design.JRJdtCompiler или net.sf.jasperreports.engine.design.JRJavacCompiler?

К сожалению, документация не объясняет разницу между этими двумя компиляторами ...

Изменить: так что я использовал JRJavacCompiler. С JRJdtCompiler я получаю исключение NullPointer:

 java.lang.NullPointerException
    at java.lang.Class.isAssignableFrom(Native Method)
    at net.sf.jasperreports.engine.fill.JRFillTextField.getFormat(JRFillTextField.java:706)
    at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:394)
    at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:368)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258)
    at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2036)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:760)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540)
    at com.swissre.sod.jone.web.server.FileStreamingServlet.doGet(FileStreamingServlet.java:48)

1 Ответ

1 голос
/ 24 февраля 2012

Возможно, вы используете библиотеки в своем приложении, скомпилированные в java 6.

Вы можете проверить информацию MANIFEST ваших зависимостей, чтобы узнать больше.

...