Foros del Web » Programación para mayores de 30 ;) » Java »

Generación Reporte desde JSP

Estas en el tema de Generación Reporte desde JSP en el foro de Java en Foros del Web. Hola que tal Buenas Tardes a todos en este foro haber si me pueden ayudar especificamente estoy trabajando con Netbeans 6.8, mysql y jsp estoy ...
  #1 (permalink)  
Antiguo 10/09/2010, 18:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 8 meses
Puntos: 0
Generación Reporte desde JSP

Hola que tal Buenas Tardes a todos en este foro haber si me pueden ayudar
especificamente estoy trabajando con Netbeans 6.8, mysql y jsp estoy realizando una aplicacion web utilizando una base de datos propia que me
despliege los usuarios donde el noempleado es=x

Este es el código de la jsp donde se manda llamar al reporte index.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Mi primer Reporte en jsp</h1>
<a href="reporte.jsp">Generar reporte</a>
</body>
</html>

este es la pagina reporte.jsp que contiene el detalle del llamado reporte

<%@page import="java.io.*"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@page import="net.sf.jasperreports.engine.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Reporte iReport3.7.2</title>
</head>
<body>
<h1>Realizando </h1>
<%
Connection conn=null;
try
{
Class.forName("com.mysql.jdbc.Driver"); //se carga el driver
String url = "jdbc:mysql://localhost/inv?user=root&password=sap";
conn= DriverManager.getConnection(url);

}
catch (Exception ex)
{
ex.printStackTrace();
}

File reportFile = new File(application.getRealPath("report1.jasper"));
String noempleado="TAF1014";
Map parameters = new HashMap();
parameters.put("noempleado", noempleado);
byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath (),parameters,conn);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();

%>
</body>
</html>


me despliega la información requerida pero en la consola del Netbeans me despliege unos errores a que se debe y como los puedes
solucionar para que no aparezcan ya que en el proyecto que estoy trabajando voy hacer reportes y como se va a implementar en varias
sucursales no me gustaria que apareceria ese tipo de errorres a continuación muestro lo que aparece:

WARNING: StandardWrapperValve[jsp]: PWC1406: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(R esponse.java:707)
at org.apache.catalina.connector.ResponseFacade.getWr iter(ResponseFacade.java:224)
at org.apache.jasper.runtime.JspWriterImpl.initOut(Js pWriterImpl.java:187)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffe r(JspWriterImpl.java:180)
at org.apache.jasper.runtime.PageContextImpl.release( PageContextImpl.java:237)
at org.apache.jasper.runtime.JspFactoryImpl.internalR eleasePageContext(JspFactoryImpl.java:181)
at org.apache.jasper.runtime.JspFactoryImpl.releasePa geContext(JspFactoryImpl.java:132)
at org.apache.jsp.reporte_jsp._jspService(reporte_jsp .java from :110)
at org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:109)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:847)
at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:406)
at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:483)
at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:373)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:847)
at org.apache.catalina.core.StandardWrapper.service(S tandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipel ine.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPip eline.invoke(PESessionLockingStandardPipeline.java :85)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doServ ice(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:233)
at com.sun.enterprise.v3.services.impl.ContainerMappe r.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(P rocessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(Proce ssorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(Process orTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtoc olFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(Htt pProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(Pr otocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(Selec tionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:6 9)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doW ork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run (AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)

como lo puedes arreglar para que no salgan tales errores aparentemente según ya se está haciendo el llamo previo pero no logro identificar el problema cualquier cosa que me puedan comentar cualquier tipo de ayuda les estaré muy agradecido
saludos !!!!
  #2 (permalink)  
Antiguo 10/09/2010, 21:15
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Generación Reporte desde JSP

Hola,

No puedes generar dos tipos de contenido diferentes en el mismo archivo,

Esto genera un encabezado y manda HTML al navegador del cliente,
Cita:
Iniciado por mruiz17 Ver Mensaje
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Reporte iReport3.7.2</title>
Aquí lo intentas cambiar por otra cosa, un documento PDF,
Cita:
Iniciado por mruiz17 Ver Mensaje
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
Tienes que tener dos unidades de compilación diferentes, un JSP para generar HTML y un Servlet para generar el PDF. Y no puedes enviarlos al mismo tiempo, el JSP tiene que administrar una descarga de un archivo PDF, que es generado por el Servlet. Si deseas incrustar el PDF en una ventana tienes que usar otros métodos, como un ActiveX, un Applet, un <FRAME>, o algo parecido.

Saludos,

Etiquetas: jsp, reporte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:10.