Sto cercando di utilizzare getServletContext() getRealPath ("/"), ma continuo a ricevere questo errore:.Perché getservletcontext non è stato trovato?
non riesce a trovare il simbolo simbolo: il metodo getServletContext() posizione: Interfaccia javax. servlet.http.HttpSession String path = session.getServletContext(). getRealPath ("/") + "layout/tiles /" + reportPath;
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
session = request.getSession();
Map params = new HashMap();
String reportPath = "maintenance/jasper/report01.jasper";
exportToPDF(reportPath , response, params);
return null;
}
protected void exportToPDF(String reportPath , HttpServletResponse response, Map jasperParams) throws Exception {
String path = session.getServletContext().getRealPath("/") + "layout/tiles/" + reportPath ;
if (!new File(path).exists()) {
throw new Exception("The path doesn''t exist. </br>" + path);
}
InputStream input = new FileInputStream(path);
jasperParams.put("REPORT_LOCALE", Locale.US);
JasperPrint jasper = JasperFillManager.fillReport(input , jasperParams, new JRBeanCollectionDataSource(Vehicles));
response.setContentType("application/pdf");
ServletOutputStream output = response.getOutputStream();
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasper);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, output);
exporter.exportReport();
output.close();
}
Avete idea perché questo sta accadendo?
Grazie Ritesh, ho fatto quello che mi hai detto, ma ora ho un nuovo messaggio
------ EDIT --------
controllo my dispatcher-servlet.xml Ho scoperto che è un po 'diverso dal codice mostrato su questo web. Non so come potrebbe influenzare il mio progetto, ma quello che mi piace sapere se c'è un approccio diverso per ottenere lo stesso risultato di usare la sessione. getServletContext() .getRealPath ("/")
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.tiles2.TilesView" />
</bean>
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles.xml</value>
</list>
</property>
</bean>
È possibile controllare questo documento http: // netbeans.org/kb/68/web/quickstart-webapps-spring.html e vedi se qualcosa è diverso nella configurazione del tuo progetto? – Ritesh
Quale versione dei report Jasper stai utilizzando e quali jar dei report Jasper hai aggiunto nel tuo progetto? – Ritesh
@ Ritesh-JasperReports 3.7.1 e ... questo è piuttosto imbarazzante, dal momento che non sapevo quali vasi aggiungere, ho aggiunto tutti i vasi inclusi nelle cartelle "lib" e "dist" che vengono con i jasperreports- 3.7.1-project.zip. – eddy