miércoles, 13 de octubre de 2010

Error 500 por fuente que no existe en linux

El mensaje:
javax.servlet.ServletException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1  
at java.lang.String.charAt(String.java:687)  
at com.genexus.reports.PDFReportItext.GxDrawText(Unknown Source)  
at arlabsol_impl.privateExecute(arlabsol_impl.java:311)  
at arlabsol_impl.webExecute(arlabsol_impl.java:37)  
at com.genexus.webpanels.GXWebObjectBase.doExecute(Unknown Source)  
at arlabsol.doExecute(arlabsol.java:20)  
at com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)  
at com.genexus.webpanels.GXWebObjectStub.doGet(Unknown Source)  
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)  
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)  
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:402)
at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:134)  
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)  
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)  
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)  
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)  
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)  
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)  
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)  
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)  
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)  
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)  
at java.lang.Thread.run(Thread.java:619)   
com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)  com.genexus.webpanels.GXWebObjectStub.doGet(Unknown Source)  javax.servlet.http.HttpServlet.service(HttpServlet.java:617)  javax.servlet.http.HttpServlet.service(HttpServlet.java:717)  org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:402)  org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:134)  javax.servlet.http.HttpServlet.service(HttpServlet.java:617)  javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
La Solución:
El problema fue por cuanto el reporte tiene el tipo de letra Microsoft Sans Serif, el  mismo que no es soportado por Linux, se solucionó el inconveniente, copiando la fuente desde windows (C:\windows\fonts\micross.ttf) hacia linux (/usr/share/fonts/windowsfonts/micross.ttf), luego de esto ahi que configurar el archivo PDFReport.ini que se encuentra bajo la carpeta de tomcat utilizada (.../webapps/nombre_sistema/WEB-INF/PDFReport.ini)

No hay comentarios:

Publicar un comentario