Exception exporting package

I’m testing the generation of reports on a server with Ubuntu 18.04, the issue is that in the development environment in Windows the reports are generated without problem, but when mounted on the server, the following error occurs: "An error occurred while saving result report "

“com.haulmont.reports.exception.ReportingException: An error occurred while saving result report. Template name [prueba.docx] Report name [RRD - Reporte de prueba]
Exception exporting package
null”

some missing permission?
some non-existent folder?

I appreciate any idea about it

Best regards,

Nelson F.

Any suggestions? Has not the same thing happened to anyone?

Hi Nelson,
We are unable to reproduce the problem, so could you bring more details of what you did?
How have you deployed the application to Ubuntu? Using WAR?
Are other applications running on the Tomcat?
Do you see docx4j-* jars in the tomcat libs? Which versions have they?

image

Assumably, the exception is thrown by dox4j during conversion from DOCX-template to HTML. Do you print HTML report?
Could you also share the whole exception? It seems there should be some IllegalStateException below which could help to discover the problem.

Hi @iskandarov
Yes, I’m using a war.
There are no more applications on that server only the application made with Cuba.
It is being generated from a docx to a pdf

image

com.haulmont.reports.exception.ReportingException: An error occurred while saving result report. Template name [prueba.docx] Report name [RRD - Reporte de prueba]
Exception exporting package
null
	at com.haulmont.reports.ReportingBean.createReportDocument(ReportingBean.java:341)
	at com.haulmont.reports.ReportingBean.createReportDocument(ReportingBean.java:284)
	at com.haulmont.reports.ReportingBean.createReport(ReportingBean.java:188)
	at com.haulmont.reports.ReportServiceBean.createReport(ReportServiceBean.java:35)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)
	at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:117)
	at sun.reflect.GeneratedMethodAccessor149.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)
	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
	at com.sun.proxy.$Proxy131.createReport(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.haulmont.cuba.core.sys.remoting.LocalServiceInvokerImpl.invoke(LocalServiceInvokerImpl.java:94)
	at com.haulmont.cuba.web.sys.remoting.LocalServiceProxy$LocalServiceInvocationHandler.invoke(LocalServiceProxy.java:154)
	at com.sun.proxy.$Proxy272.createReport(Unknown Source)
	at com.haulmont.reports.gui.ReportGuiManager.getReportResult(ReportGuiManager.java:265)
	at com.haulmont.reports.gui.ReportGuiManager.printReportSync(ReportGuiManager.java:236)
	at com.haulmont.reports.gui.ReportGuiManager.printReportSync(ReportGuiManager.java:221)
	at com.haulmont.reports.gui.ReportGuiManager.printReport(ReportGuiManager.java:162)
	at com.iis.app.mediesfera.web.medicalcenter.mstconsulta.MstConsultaEdit.callToReport(MstConsultaEdit.java:182)
	at com.iis.app.mediesfera.web.medicalcenter.mstconsulta.MstConsultaEdit.onPerimetroCefalicoNinnas(MstConsultaEdit.java:109)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.haulmont.cuba.gui.xml.DeclarativeAction.actionPerform(DeclarativeAction.java:84)
	at com.haulmont.cuba.web.gui.components.WebPopupButton$PopupActionWrapper.actionPerform(WebPopupButton.java:368)
	at com.haulmont.cuba.web.gui.components.WebButton.performAction(WebButton.java:45)
	at com.haulmont.cuba.web.gui.components.WebButton.lambda$new$61446b05$1(WebButton.java:37)
	at sun.reflect.GeneratedMethodAccessor532.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
	at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037)
	at com.vaadin.ui.Button.fireClick(Button.java:377)
	at com.haulmont.cuba.web.toolkit.ui.CubaButton.fireClick(CubaButton.java:54)
	at com.vaadin.ui.Button$1.click(Button.java:54)
	at sun.reflect.GeneratedMethodAccessor527.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119)
	at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:444)
	at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:409)
	at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274)
	at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
	at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1435)
	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:361)
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:312)
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:203)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107)
	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73)
	at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.haulmont.cuba.web.sys.singleapp.SingleAppWebContextLoader$SetClassLoaderFilter.doFilter(SingleAppWebContextLoader.java:277)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:677)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)

Hi Nelson,
Still could not reproduce the problem.
I have deployed my test application to Tomcat 8.5.32 on Ubuntu 16.4.
Reporting works OK there: DOCX report is successfully printed in HTML and PDF (with docx4j-conversion).

I have tried both: singleWar and separate WARs.

Ensure the server is correctly set up. And if the problem persists please bring more information about your project and environment.

Hi @iskandarov, I regret answering a little late, other occupations gave priority. What we have is an ubuntu 18.04, tomcat was not installed from the repositories and the application is accessed by nginx. The tomcat part is installed in the opt folder with its proper permissions.

image

image

We follow indications of this post.

Copy .config to tomcat
image

But even so it continues indicating error, everything in local works of correct form.

reporting.displayDeviceUnavailable = true
reporting.openoffice.path = /usr/lib/libreoffice/program
reporting.openoffice.ports = 8100|8101|8102|8103

I enclose our catalina log where the error is seen. What are we omitting so that the reports work? or in short, can only work with the tomcat of the repositories?

Best regards,

Nelson F.

catalina.out.zip (28.5 KB)

Hi Nelson,
From the log:

  1. PDF conversion is done by docx4j library, not OpenOffice. To enable OpenOffice conversion set reporting.openoffice.docx.useOfficeForDocumentConversion = true.
  2. There is no “Calibri,normal,400” font in your system.
  3. As you said, you have just copied tomcat to /opt. What about ‘tomcat’ user? Probably, there is no home directory for the ‘tomcat’ user or something is wrong with the access rights. NPE occurs by this reason.

It seems you can solve the problem by just enabling the OpenOffice conversion. But it is better also to add the font to the system and ensure the tomcat is correctly installed.

Hi @iskandarov, that line solved the whole problem, thank you very much for your time and collaboration