Skip to Main Content

New to Java

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Using Jasper Reports problem: Error loading object from InputStream

843785Jul 26 2008 — edited Jul 26 2008
I have a problem when loading the servlet that would compile the jrxml and export it in a PDF format. I tested a sample jrxml that I found in a tutorial and put it in my CLASSES folder in WEB-INF togther with the servlet. The error occured when calling the servlet.
error
net.sf.jasperreports.engine.JRException: Error loading object from InputStream
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:196)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:580)
	at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:368)
	at EmptyDSReportServlet.doGet(EmptyDSReportServlet.java:26)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
	at com.caucho.server.http.Invocation.service(Invocation.java:315)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
	at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:253)
	at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:171)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.StreamCorruptedException: invalid stream header: 3C3F786D
	at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
	at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:191)
	... 12 more
Here is the jrxml that I put inside the classes folder together with the servlet:
<?xml version="1.0"?>
<!DOCTYPE jasperReport
PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="EmptyDataSourceReport">
<detail>
<band height="20">
<staticText>
<reportElement x="20" y="0" width="200" height="20"/>
<text><![CDATA[This simple report contains only static
data.]]></text>
</staticText>
</band>
</detail>
</jasperReport>
finally, the servlet:
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;
public class EmptyDSReportServlet extends HttpServlet
{
protected void doGet(HttpServletRequest request,HttpServletResponse
response) throws ServletException, IOException
{
ServletOutputStream servletOutputStream =
response.getOutputStream();
InputStream reportStream = getServletConfig().getServletContext()
.getResourceAsStream("EmptyDataSourceReport.jrxml");
try
{
JasperRunManager.runReportToPdfStream(reportStream,
servletOutputStream, new HashMap(), new JREmptyDataSource());
response.setContentType("application/pdf");
servletOutputStream.flush();
servletOutputStream.close();
}
catch (JRException e)
{
// display stack trace in the browser
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
response.setContentType("text/plain");
response.getOutputStream().print(stringWriter.toString());
}
}
}

Comments

843785
guys I dunno what the error is all about.need help..
843785
I learned that my mistake was that I am not using the .jasper file. I have a new error now although I already put the needed file inside the classes folder. This is the error:
java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.fill.JRVerticalFiller
	at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)
	at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:83)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:582)
	at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:368)
	at EmptyDSReportServlet.doGet(EmptyDSReportServlet.java:25)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
	at com.caucho.server.http.Invocation.service(Invocation.java:315)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
	at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:253)
	at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:170)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
	at java.lang.Thread.run(Thread.java:619)
843785
Guys, I dunno why I am getting that error...Please, I need Help..Thanks
1 - 3
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Aug 23 2008
Added on Jul 26 2008
3 comments
12,940 views