java.lang.NoClassDefFoundError: net.sf.jasperreports.engine.util.JRStyledTextParser (ошибка инициализации)

Добрый день,

У меня есть веб-приложение, в котором есть модуль, позволяющий пользователю загружать отчет в файле excel при нажатии кнопки.

Однако я столкнулся с этой ошибкой:

[10/10/13 20:21:48:332 MYT] 00000095 ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper service Uncaught service() exception thrown by servlet action: java.lang.NoClassDefFoundError: net.sf.jasperreports.engine.util.JRStyledTextParser (initialization failure)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:176)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:121)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
    at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:82)
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:653)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:969)
    at com.cv.report.service.impl.ReportServiceImpl.getReport(ReportServiceImpl.java:101)
    at com.cv.report.service.core.AbstractReportExporter.getReport(AbstractReportExporter.java:69)
    at com.cv.report.service.impl.ExcelExporter.exportAsByte(ExcelExporter.java:120)
    at com.cv.report.service.core.AbstractReportExporter.export(AbstractReportExporter.java:53)
    at com.cv.report.service.impl.ExcelExporter.export(ExcelExporter.java:82)
    at com.cv.report.service.impl.ReportService.export(ReportService.java:53)
    at com.cv.ibs.ccweb.report.ReportLastSuccessfulSignOnDateAction.performExport(ReportLastSuccessfulSignOnDateAction.java:121)
    at com.cv.ibs.ccweb.report.ReportAction.executeOther(ReportAction.java:62)
    at com.cv.ibs.ccweb.BaseAction.execute(BaseAction.java:487)
    at com.cv.ibs.ccweb.report.ReportAction.execute(ReportAction.java:88)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:465)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1422)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:505)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:575)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032)
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3761)
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:976)
    at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
    at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
    at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1784)
    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
    at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)

Я пытаюсь искать в Интернете, но в основном говорю об отсутствующем файле jar в моей проблеме пути к классу. Я проверил свой файл в своей среде, я думаю, что мои файлы jar должны быть правильными, вот эти файлы jar:

  1. Commons-beanutils.jar
  2. Commons-коллекции.jar
  3. Commons-дайджестер-2.1.jar
  4. Commons-discovery-0.2.jar
  5. Commons-регистрация-1.1.1.jar
  6. dom4j-1.6.1.jar
  7. iText-2.1.7.jar
  8. Джакарта-regexp.jar
  9. jasperreports-4.7.0.jar
  10. jasperreports-апплет-4.7.0.jar
  11. jasperreports-шрифты-4.7.0.jar
  12. jasperreports-javaflow-4.7.0.jar
  13. jcommon-1.0.15.jar
  14. пои-3.8-20120326.jar
  15. poi-ooxml-3.8-20120326.jar
  16. poi-ooxml-schemas-3.8-20120326.jar
  17. stax-api-1.0.1.jar
  18. xmlbeans-2.3.0.jar

Я работаю с RAD 8.5.5 с инфраструктурой Struts. До этого я работаю над тем же веб-приложением в RAD 7.0.

RAD 7.0 нормально работает с кнопкой загрузки отчета в файле excel. Однако при переходе на RAD 8.5.5 я столкнулся с этой ошибкой.

Пожалуйста, дайте мне знать, если я предоставлю неверную информацию.

Добрый совет.


person Panadol Chong    schedule 10.10.2013    source источник
comment
Можете ли вы опубликовать свой код jrxml, для которого вы используете стиль в своем отчете?   -  person user1791574    schedule 11.10.2013


Ответы (1)


Это может быть вызвано сбоем загрузки классов AWT (статическая инициализация JRStyledTextParser выполняет GraphicsEnvironment.getLocalGraphicsEnvironment()).

Добавьте -Djava.awt.headless=true в серверный процесс Java, чтобы подтвердить или опровергнуть эту возможную причину.

person dada67    schedule 11.10.2013
comment
Спасибо Дада67. Я новичок в Java, могу ли я узнать, в какой файл мне следует добавить этот код? - person Panadol Chong; 12.10.2013
comment
Я не могу ответить на этот вопрос, это зависит от вашей установки/используемых продуктов/и т. д. - person dada67; 17.10.2013