Fala galera, blz?
Seguinte…fiz o relatório no Ireport…e ele rodo blz ate ai…dai criei um servlet q abre esse relatório.
Segue o trecho do código…
######################################################################################################
Servlet Relatorios
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
HashMap params = new HashMap();
String jasper = request.getContextPath()
+ "/relatorios/Rel_Funcionarios.jasper" ;
OutputStream ops = null ;
String host = "http://" + request.getServerName() + ":"
+ request.getServerPort();
URL jasperURL = new URL(host + jasper);
try {
response.setContentType( CONTENT_TYPE_PDF );
byte [] bytes = JasperRunManager.runReportToPdf(jasperURL
.openStream(), params, PoolConexao.obtemConexao ());
if (bytes != null ) {
ops = response.getOutputStream();
ops.write(bytes);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (JRException e) {
e.printStackTrace();
} finally {
if (ops != null ) {
ops.flush();
ops.close();
}
try {
PoolConexao.devolveConexao();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
######################################################################################################
PoolConexao.java
private PoolConexao() throws ClassNotFoundException, SQLException {
try {
String url = "jdbc:mysql://localhost:3306/net" ;
String usuario = "user" ;
String senha = "user" ;
Class.forName( "com.mysql.jdbc.Driver" );
conexao = DriverManager.getConnection(url, usuario, senha);
} catch (SQLException ex) {
System. err .println( "SQLException: " + ex.getMessage());
} catch (Exception e) {
System. err .println( "Problemas ao tentar conectar com o banco de dados" );
}
}
public static Connection obtemConexao() throws ClassNotFoundException, SQLException {
if ( conexao == null) {
poolConexao = new PoolConexao();
}
return conexao;
}
public static void devolveConexao() throws ClassNotFoundException, SQLException {
poolConexao = null ;
conexao.close();
}
######################################################################################################
Daí quando chamo no browser o servlet Relatórios ele mostra o seguinte erro:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
net.sf.jasperreports.engine.JRPropertiesMap.getPropertyNames(JRPropertiesMap.java:90)
net.sf.jasperreports.engine.util.JRProperties.getProperties
(JRProperties.java:502)
net.sf.jasperreports.engine.fill.JRBaseFiller
.(JRBaseFiller.java
:405)
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)
net.sf.jasperreports.engine.JasperRunManager.runReportToPdf
(JasperRunManager.java
:242)
br.com.usimcol.intranet.relatorios.Relatorios.doPost
(Relatorios.java:54)
br.com.usimcol.intranet.relatorios.Relatorios.doGet(Relatorios.java
:36)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service
(HttpServlet.java:802)
br.com.usimcol.intranet.servlets.Controller.doPost(Controller.java:152)
br.com.usimcol.intranet.servlets.Controller.doGet(Controller.java:30)
javax.servlet.http.HttpServlet.service
(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.
Apache Tomcat/5.5.12
Alguem poderia me ajudar?
Nao consigo ver o erro no meu servlet!
Valeu d+!
Muito Obrigado.
Vinicius