sijujosethomas
-
Posts
9 -
Joined
-
Last visited
Content Type
Profiles
Forum
Events
Featured Visualizations
Knowledge Base
Documentation (PDF Downloads)
Blog
Documentation (Test Area)
Documentation
Dr. Jaspersoft Webinar Series
Security Advisories
Downloads
Posts posted by sijujosethomas
-
-
can we send the JasperPrint object from the servlet to an applet through the response??
-
you can pass the query as a parameter to the report
-
you can pass the query as a parameter to the report
-
i'm trying to pass the JasperPrint object from the servlet to the applet and view the report through the applet
my code is as follows:
my servlet:
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
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.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
public class JRServlet extends HttpServlet {
private Connection con = null;
private PreparedStatement pst = null;
private ResultSet rs = null;
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doPost(req,res);
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
con = DriverManager.getConnection("mydb", "username","password");
System.out.println("connection created");
String sql = "my query";
pst = con.prepareStatement(sql);
rs = pst.executeQuery();
JRResultSetDataSource jrds = new JRResultSetDataSource(rs);
JasperDesign jd = JRXmlLoader.load("myreportfile.jrxml");
JasperReport jr = JasperCompileManager.compileReport(jd);
JasperPrint jp = JasperFillManager.fillReport(jr, new HashMap(),
jrds);
res.setContentType("application/octet-stream");
ServletOutputStream outstr = res.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(outstr);
oos.writeObject(jp);
oos.flush();
oos.close();
outstr.flush();
outstr.close();
} catch (SQLException se) {
System.out.println("SQLException:" + se.getMessage());
} catch (JRException jre) {
System.out.println("JRException:" + jre.getMessage());
} finally {
try {
rs.close();
pst.close();
con.close();
} catch (SQLException se) {
}
}
}
}
my applet:
import java.applet.Applet;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
public class JRApplet extends Applet {
private Button openJRViewer = new Button("Open");
public void init() {
add(openJRViewer);
openJRViewer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
receiveData();
}
});
}
private URLConnection getServletConnection() throws MalformedURLException,
IOException {
URL urlServlet = new URL(getCodeBase(), "servlet");
URLConnection con = urlServlet.openConnection();
con.setDoInput(true);
con.setDoOutput(false);
con.setUseCaches(false);
con.setRequestProperty("Content-Type",
"application/x-java-serialized-object");
return con;
}
private void receiveData() {
try {
System.out.println("inside method");
//connection from servlet
URLConnection con = getServletConnection();
System.out.println("after conn");
// reveive data from servlet
InputStream instr = con.getInputStream();
System.out.println("after instr ");
ObjectInputStream inputFromServlet = new ObjectInputStream(instr);
System.out.println("after ois");
JasperPrint jpo = (JasperPrint) inputFromServlet.readObject();
System.out.println("after jpo");
JasperViewer.viewReport(jpo);
System.out.println("after view");
} catch (MalformedURLException e) {
System.out.println("MalformedURLException:" + e.getMessage());
} catch (IOException ie) {
System.out.println("IOException:" + ie.getMessage());
ie.printStackTrace();
} catch (ClassNotFoundException ce) {
System.out.println("ClassNotFoundException:" + ce.getMessage());
}
}
}
but i'm getting the following error:
IOException:invalid stream header: 4A524170
java.io.StreamCorruptedException: invalid stream header: 4A524170
can someone help me on this please...
thanks in advance.
-
thanks anyway for your response..
-
Hi seshasaib,
Is there any example for this anywhere???
-
I'm having troubles while using queries that involve mapping from four table.... the problem arises while creating a JRResultSetDataSource using the resultset pbtained by executing that query...
even though the resultset contains data..
wgen we try to view the report.. it is said that the document has no pages...
Can someone please help me on this.....
-
I'm having troubles while using dynamic queries that involve mapping... the report is working fine for that particular query when i run it though the ireport tool... but when i use JRResultSetDataSource for the same, the data is only fetched from one table....
Can someone help me on this...pls..
images are not getting displayed at client side
in Products
Posted
I'm have generated the report in the Html format in the server.... In this file the line are displayed properly...
then i read that html file form that location and i wirte that into the response...
now i'm able to read this at the clientside but the lines are not getting displayed properly...
what is it that i'm doing worng???
is it a problem with the response.setContentType()
i have set it to (text/html)
can someone help me on this...
thanks in advance...