Chart doesn't get displayed on the screen

A discussion forum for JFreeChart (a 2D chart library for the Java platform).
Locked
Luis

Chart doesn't get displayed on the screen

Post by Luis » Wed Dec 11, 2002 8:54 pm

Hi, I'm running a servlet in a web logic server... the servlet doesn't display the chart, and it's running because the server administrator told me that running the servlet doesn't generate any exception so I suppose that is running without throwing an error this is the code I'm using:

package gst.gtse.times;

import java.io.OutputStream;
import java.io.IOException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.RequestDispatcher;
import com.jrefinery.chart.JFreeChart;
import com.jrefinery.chart.ChartFactory;
import com.jrefinery.chart.ChartUtilities;
import com.jrefinery.data.IntervalCategoryDataset;
import java.io.PrintWriter;
import com.jrefinery.data.GanttSeries;
import com.jrefinery.data.GanttSeriesCollection;
import com.jrefinery.data.TimeAllocation;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import com.sybase.jdbc.SybDriver;

public class GanttChart extends HttpServlet {

String fdm,init;

public GanttChart() {
fdm =null; }

public void destroy(){
System.out.println("Servlet Destroyed");
}


public IntervalCategoryDataset createGanttDataset() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException{

GanttSeriesCollection collection = new GanttSeriesCollection();


try {

Class.forName("com.sybase.jdbc.SybDriver").newInstance();
Connection connect = DriverManager.getConnection("jdbc:sybase:Tds:schdba09:1540/tbtisdp9", "hernanf4", "kool24ps");
ResultSet rs;

Statement stmt = connect.createStatement();
String strQry = "SELECT tistiact.act_desc, tistiact.act_no, tistiact.actual_start, tistiact.actual_finish";
strQry = strQry + ", tistiact.orig_late_start, tistiact.orig_late_finish, tistiact.curr_late_finish";
strQry = strQry + " from tistiact where tistiact.order_no = '" + fdm + "'";
rs = stmt.executeQuery(strQry);


GanttSeries s1 = new GanttSeries("Closed");
GanttSeries s2 = new GanttSeries("Active");
java.sql.Date act_strt, act_fin, org_strt, org_fin, curr_late_fin;
int i=1;
while (rs.next()){

Object task = new String(rs.getString(1) + " " + rs.getString(2));
act_strt = rs.getDate(3);
act_fin = rs.getDate(4);
org_strt = rs.getDate(5);
org_fin = rs.getDate(6);
curr_late_fin = rs.getDate(7);

if ((act_strt!= null))
if ((act_fin!= null)){
s1.add(task, new TimeAllocation(date(act_strt), date(act_fin)));

}
else
s1.add(task, new TimeAllocation(date(act_strt), date(curr_late_fin)));

else
s1.add(task, new TimeAllocation(date(org_strt) , date(org_fin)));

if ((org_strt!= null)&&(org_fin!=null))
s2.add(task, new TimeAllocation(date(org_strt) , date(org_fin)));

i++;

}
collection.add(s1);
collection.add(s2);



stmt.close();
connect.close();
return collection;

}
catch (SQLException e){
System.out.println(e.getMessage());
System.out.println(e.toString());
}

catch (NullPointerException e){
e.printStackTrace();

System.out.println(e.toString());
}
catch (Exception e){
e.printStackTrace();
System.out.println(e.toString());


}

return collection;
}


private static Date date(java.sql.Date dateStr) {

int year, month, day;
String dateString = dateStr.toString();
Date result = dateStr;
year = Integer.parseInt(dateString.substring(0,4));
month = Integer.parseInt(dateString.substring(5,7));
day = Integer.parseInt(dateString.substring(8,10));
Calendar calendar = Calendar.getInstance();
calendar.set(year, month, day);
result = calendar.getTime();
return result;

}

public void validate(String str){

fdm = str.trim();
fdm = fdm.toUpperCase();

}


public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


OutputStream out = response.getOutputStream();
try {
validate(request.getParameter("fdmno"));
IntervalCategoryDataset dataset = createGanttDataset();
JFreeChart chart = ChartFactory.createGanttChart("Activities for " + fdm, "Activity", "Date", dataset, true);
response.setContentType("image/jpeg");
ChartUtilities.writeChartAsJPEG(out, chart, 800, 600);
out.close();
}
catch (Exception e) {
e.printStackTrace();
System.err.println(e.toString());
System.out.println(e.toString());

}
finally{
out.close();
}


}
}

The thing here is that the servlet is running in a local web-logic server that I installed in my computer... what should I do?, thanks in advance.

Locked