Help!! connect jfreechart applet with DB2

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

Help!! connect jfreechart applet with DB2

Post by GeForZero » Fri Feb 28, 2003 8:55 am

I'm cannot connect applet and DB2. It has some error when i use Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance();
the error is NullPointerException

When i use Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance(); I see this error.

java.lang.ExceptionInInitializerError

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:130)

at com.jrefinery.chart.demo.DualAxisApp.<clinit>(DualAxisApp.java:84)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:274)

at java.lang.Class.newInstance0(Class.java:296)

at java.lang.Class.newInstance(Class.java:249)

at sun.applet.AppletPanel.createApplet(AppletPanel.java:548)

at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1627)

at sun.applet.AppletPanel.runLoader(AppletPanel.java:477)

at sun.applet.AppletPanel.run(AppletPanel.java:290)

at java.lang.Thread.run(Thread.java:536)

Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission ibm.db2.instance.path read)

at java.security.AccessControlContext.checkPermission(AccessControlContext.java:270)

at java.security.AccessController.checkPermission(AccessController.java:401)

at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)

at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1291)

at java.lang.System.getProperty(System.java:572)

at COM.ibm.db2.jdbc.app.DB2Driver.<init>(DB2Driver.java:170)

at COM.ibm.db2.jdbc.app.DB2Driver.<clinit>(DB2Driver.java:129)

... 14 more




*************************************************
package com.jrefinery.chart.demo;

import javax.swing.JApplet;
import javax.swing.*;
import java.sql.*;
import java.lang.String;
import java.awt.Color;
import com.jrefinery.chart.JFreeChart;
import com.jrefinery.chart.Legend;
import com.jrefinery.chart.ChartFactory;
import com.jrefinery.chart.ChartPanel;
import com.jrefinery.chart.axis.Axis;
import com.jrefinery.chart.axis.ValueAxis;
import com.jrefinery.chart.axis.HorizontalCategoryAxis;
import com.jrefinery.chart.axis.VerticalNumberAxis;
import com.jrefinery.chart.plot.CategoryPlot;
import com.jrefinery.chart.renderer.DefaultDrawingSupplier;
import com.jrefinery.chart.renderer.LineAndShapeRenderer;
import com.jrefinery.chart.renderer.DrawingSupplier;
import com.jrefinery.chart.renderer.VerticalBarRenderer;
import com.jrefinery.data.CategoryDataset;
import com.jrefinery.data.DefaultCategoryDataset;
import com.jrefinery.ui.ApplicationFrame;
import com.jrefinery.ui.RefineryUtilities;


/**
* A simple demonstration application showing how to create a dual axis chart based on data
* from two {@link CategoryDataset} instances.
*
* @author David Gilbert
*/
public class DualAxisApp extends JApplet {

/**
* Creates a new demo instance.
*
* @param title the frame title.
*/
public static Connection con=null;
public static Statement stmt=null;
public static String url = "jdbc:db2://localhost:50000/eisweb";
static{
try{
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance();
con = DriverManager.getConnection(url,"webadmin","coop");
stmt = con.createStatement();
}
catch (Exception e) {
e.printStackTrace();
}

}



public DualAxisApp() {

// super(title);

CategoryDataset dataset1 = createDataset1();

// create the chart...
JFreeChart chart = ChartFactory.createStackedVerticalBarChart(

"Yield", // chart title
"Time", // domain axis label
"% Defect", // range axis label
dataset1, // data
true, // include legend
true,
false
);

// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
DrawingSupplier supplier = new DefaultDrawingSupplier();

// set the background color for the chart...
chart.setBackgroundPaint(Color.orange);
chart.getLegend().setAnchor(Legend.SOUTH);

// get a reference to the plot for further customisation...
CategoryPlot plot = chart.getCategoryPlot();
plot.setDomainAxisLocation(Axis.BOTTOM);

VerticalBarRenderer renderer1 = (VerticalBarRenderer) plot.getRenderer();
renderer1.setDrawingSupplier(supplier);
LineAndShapeRenderer renderer2 = new LineAndShapeRenderer();
renderer2.setDrawingSupplier(supplier);

//--------Create Line Chart Dataset
CategoryDataset dataset2 = createDataset2();
ValueAxis axis2 = new VerticalNumberAxis("% Yield");
plot.setSecondaryRangeAxis(axis2);
plot.setSecondaryDataset(dataset2);
plot.setSecondaryRenderer(renderer2);

// skip some labels if they overlap...
HorizontalCategoryAxis domainAxis = (HorizontalCategoryAxis) plot.getDomainAxis();
domainAxis.setSkipCategoryLabelsToFit(true);

// OPTIONAL CUSTOMISATION COMPLETED.

// add the chart to a panel...
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
setContentPane(chartPanel);

}


/**
* Creates a sample dataset.
*
* @return The dataset.
*/

private CategoryDataset createDataset1() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();
try{
String sql="select weekno, type, values from defect order by type, weekno ";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
// dataset.addValue(2.0, series1, category1);
// System.out.println(rs.getString(3));
float val = rs.getFloat("values");
String type = rs.getString("type");
String week = rs.getString("weekno");

dataset.addValue(val, type, week);
}

}
catch(SQLException ex)
{ ex.printStackTrace();
}
// rs.close();
return dataset;

}

/**
* Creates a sample dataset.
*
* @return The dataset.
*/
private CategoryDataset createDataset2() {

// create the dataset...
DefaultCategoryDataset dataset = new DefaultCategoryDataset();

try{
String sql1="select weekno, values from yield";
ResultSet rs = stmt.executeQuery(sql1);

while(rs.next())
{
// dataset.addValue(98.0, series1, category1);
float val = rs.getFloat("values");
String cate = rs.getString("weekno");

dataset.addValue(val, "Yield", cate);
// System.out.println(rs.getString(1));
}
rs.close();
}

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

return dataset;

}

/**
* Starting point for the demonstration application.
*
* @param args ignored.
*/

public void init() {

DualAxisApp demo = new DualAxisApp();
//demo.pack();
//RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);

}

}

********************************************************

<APPLET code=DualAxisApp.class height=300 width=600 archive="DualAxis.jar, jfreechart-0.9.6.jar, db2java.zip, jcommon-0.7.2.jar">
<!-- set code path -->
<PARAM NAME="code" VALUE="com.jrefinery.chart.demo.DualAxisApp">
<PARAM NAME="height" VALUE="300">
<PARAM NAME="width" VALUE="300">
<!-- set path/url that install class file-->
<PARAM NAME="codeBase" VALUE=".">

</APPLET>

****************
Can you help please?

Bryan

Re: Help!! connect jfreechart applet with DB2

Post by Bryan » Sun Mar 02, 2003 3:31 am

From the source of com.jrefinery.data.JdbcXYDataset

try {
Class.forName(driverName);
if (debug) System.out.println("Opening db connection");
connection = DriverManager.getConnection(url, user, passwd);
statement = connection.createStatement();
} catch (ClassNotFoundException ex) {
System.err.println("Cannot find the database driver classes.");
System.err.println(ex);
} catch (SQLException ex) {
System.err.println("Cannot connect to this database.");
System.err.println(ex);
}

Locked