Carissimi,
la mia web app contiene alcuni Jasper Report che in locale si aprono correttamente. In remoto, risolto un problema relativo al path dei files jasper, vedo ora questo nuovo errore per il quale sono davvero in alto mare. Poiché ci lavoro da due giorni ininterreottamente e nessun collega "fisico" è riuscito a darmi dritte, se mi aiuterete a risolvere il problema ve ne sarò eternamente grato. Ringrazio in anticipo chiunque dovesse usare il suo tempo nel tentativo di aiutarmi, a prescindere dall'esito più o meno risolutivo.
Archimede
SERVLET CHE APRE IL REPORT
codice:
package servletReport;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import dao.DAOMain;
/**
* Servlet implementation class for Servlet: ServletReportStreamPDF
*
*/
public class ServletReportStreamPDF extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
static final long serialVersionUID = 1L;
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public ServletReportStreamPDF() {
super();
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String rptFileName = request.getParameter("rptFileName").toString();
String rptFolder = "/report/";
JasperPrint jp = null;
ServletContext context = this.getServletContext();
Map parameters = new HashMap();
parameters.put("alfa", context.getRealPath("/media/images/eg.jpg"));
parameters.put("sel2", "null");
parameters.put("logo", context.getRealPath("/media/images/eg.jpg"));
Connection Conn = null;
DAOMain rptDAO = new DAOMain();
try {
Conn = rptDAO.myCn();
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
jp = JasperFillManager.fillReport(context.getResourceAsStream(rptFolder + rptFileName + ".jasper"), parameters, Conn);
} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ServletOutputStream outStream = response.getOutputStream();
try {
JasperExportManager.exportReportToPdfStream(jp, outStream);
} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request,response);
}
}
ERRORE GENERATO
codice:
java.lang.NoClassDefFoundError
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:141)
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
net.sf.jasperreports.engine.util.JRGraphEnvInitializer.initializeGraphEnv(JRGraphEnvInitializer.java:58)
net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:365)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:77)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:59)
net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)
net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:57)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:363)
servletReport.ServletReportStreamPDF.doGet(ServletReportStreamPDF.java:72)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)