Bom tenho um projeto Web no Netbeans com os arquivos: ConexaoMysql, ConsumoDiario e a index.jsp.
ConexaoMysql
[code]/*
- ConexaoMysql.java
- Created on 21 de Junho de 2006, 13:46
- To change this template, choose Tools | Template Manager
- and open the template in the editor.
*/
/**
*
-
@author Fernando
*/
package org.apache.jsp;
import java.sql.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
//import org.apache.log4j.Logger;
public class ConexaoMysql {
private static Connection conn;
private static Statement stm;
private static PreparedStatement pstm;
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DATABASE_URL = "jdbc:mysql://localhost/cmufatual";
/** Creates a new instance of ConexaoMysql */
public static void Conectar() {
try
{
Class.forName(JDBC_DRIVER).newInstance();
conn = DriverManager.getConnection(DATABASE_URL,"&&&&","******");
stm = conn.createStatement();
//pstm = conn.createPreparedStatement();
}//fim do try
catch (SQLException sqlException )
{
sqlException.printStackTrace();
}//fim do catch
catch (InstantiationException e) {
System.out.println("Não foi possivel instânciar o driver MySQL "
+ e.toString());
}
catch (IllegalAccessException e) {
System.out.println("Não foi possivel instânciar o driver MySQL "
+ e.toString());
}
catch (ClassNotFoundException e) {
System.out.println("Não foi possivel encontrar o driver MySQL "
+ e.toString());
}
}//fim do metodo conectar
public static Connection getConn() {
if (conn == null) {
Conectar();
}//fim do if
return conn;
}//fim do metodo Connection
public static Statement getStm() {
if (conn == null) {
Conectar();
}
try {
stm = conn.createStatement();
}
catch (SQLException e) {
e.printStackTrace();
System.out.println("Não foi possivel criar um Statement "
+ e.toString());
}//fim do catch
return stm;
}//fim do getStm
public static void fechaConexao() {
try {
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
System.out.println("Não foi possivel fechar a conexão "
+ e.getMessage());
}//fim do catch
}//fim do metodo fechaConexao
}
[/code]
ConsumoDiario
[code]/*
- ConsumoDiario.java
- Created on 21 de Junho de 2006, 14:12
- To change this template, choose Tools | Template Manager
- and open the template in the editor.
*/
/**
*
-
@author Fernando
*/
package org.apache.jsp;
import java.sql.*;
import java.util.Date;
import java.util.Map;
import org.jfree.data.general.DefaultPieDataset;
import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
public class ConsumoDiario implements DatasetProducer {
/** Creates a new instance of ConsumoDiario */
// Retorna uma Dataset com os dados que irão alimentar o gráfico
public Object produceDataset(Map arg0) throws DatasetProduceException {
// Criando um Dataset para o gráfico
DefaultPieDataset ds = new DefaultPieDataset();
PreparedStatement pstm = null;
String refFaseA = "0";
String refFaseB = "0";
String refFaseC = "0";
String NomeCarga = "Elevadores"; //tem que vir de uma jsp [request.getparameter("NomeCarga");]
String Local = "cemig"; // tem que vir de uma jsp
String data = "2002-01-02"; // tem que vir de uma jsp
double ValorFaseA = 0;
double ValorFaseB = 0;
double ValorFaseC = 0;
//Aqui vem as legendas dos graficos
String L1 = "Carga Fase A";
String L2 = "Carga Fase B";
String L3 = "Carga Fase C";
String titulo = "Acumulo de carga em " +data+ " em "+NomeCarga+" da "+ Local;
//String query1 = "";
try{
Connection conexao = ConexaoMysql.getConn();
PreparedStatement VfaseA = conexao.prepareStatement("SELECT autocod FROM carga WHERE fase = 'A' AND nome = ?");
PreparedStatement VfaseB = conexao.prepareStatement("SELECT autocod FROM carga WHERE fase = 'B' AND nome = ?");
PreparedStatement VfaseC = conexao.prepareStatement("SELECT autocod FROM carga WHERE fase = 'C' AND nome = ?");
VfaseA.setString(1, NomeCarga);
VfaseB.setString(1, NomeCarga);
VfaseC.setString(1, NomeCarga);
VfaseA.executeQuery();
VfaseB.executeQuery();
VfaseC.executeQuery();
//Captura os valores da consulta para um ResultSet
ResultSet rs = VfaseA.executeQuery();
ResultSet rs2 = VfaseB.executeQuery();
ResultSet rs3 = VfaseC.executeQuery();
while(rs.next()){
refFaseA += rs.getDouble("autocod");
}
while(rs2.next()){
refFaseB += rs2.getDouble("autocod");
}
while(rs3.next()){
refFaseC += rs3.getDouble("autocod");
}
//System.out.printf("O valor de referência da carga na fase A é:%s\n", refFaseA);
//System.out.printf("O valor de referência da carga na fase B é:%s\n", refFaseB);
//System.out.printf("O valor de referência da carga na fase C é:%s\n", refFaseC);
//Até este ponto o programa capturou o numero da String carga no BD para realizar as consultas no BD com valor
PreparedStatement QfaseA = conexao.prepareStatement("SELECT valor FROM cemig WHERE carga = ? AND data = ?");
PreparedStatement QfaseB = conexao.prepareStatement("SELECT valor FROM cemig WHERE carga = ? AND data = ?");
PreparedStatement QfaseC = conexao.prepareStatement("SELECT valor FROM cemig WHERE carga = ? AND data = ?");
//Enviando as Strings carga com os novos valores obtidos da consulta anterior
//QfaseA.setString(1, local);
//QfaseB.setString(1, local);
//QfaseC.setString(1, local);
QfaseA.setString(1, refFaseA);
QfaseB.setString(1, refFaseB);
QfaseC.setString(1, refFaseC);
QfaseA.setString(2, data);
QfaseB.setString(2, data);
QfaseC.setString(2, data);
QfaseA.executeQuery();
QfaseB.executeQuery();
QfaseC.executeQuery();
//armazena valores
ResultSet rs4 = QfaseA.executeQuery();
ResultSet rs5 = QfaseB.executeQuery();
ResultSet rs6 = QfaseC.executeQuery();
while(rs4.next()){
ValorFaseA += rs4.getDouble("valor");
//ds.setValue(ValorFaseA);
}
while(rs5.next()){
ValorFaseB += rs5.getDouble("valor");
}
while(rs6.next()){
ValorFaseC += rs6.getDouble("valor");
}
//System.out.printf("O valor total da carga %s(%s) na Fase A é:%s\n", refFaseA, NomeCarga, ValorFaseA);
//System.out.printf("O valor total da carga %s(%s) na Fase B é:%s\n", refFaseB, NomeCarga, ValorFaseB);
//System.out.printf("O valor total da carga %s(%s) na Fase C é:%s\n", refFaseC, NomeCarga, ValorFaseC);
ds.setValue(L1, ValorFaseA);
ds.setValue(L2, ValorFaseB);
ds.setValue(L2, ValorFaseC);
}
catch (SQLException e) {
}
return ds;
}//fim do objeto
public boolean hasExpired(Map arg0, Date arg1) {
return true;//para expirar em 5 segundos [return (System.currentTimeMillis() - since.getTime()) > 5000;]
}//fim do boolean
public String getProducerId() {
return "ConsumoDiario";
}
} [/code]
index.jsp
[code]<%@page contentType=“text/html”%>
<%@taglib uri="/WEB-INF/cewolf-1.1.tld" prefix=“cewolf” %>
Consumo Diário
<jsp:useBean id=“ConsumoDiario” class=“ConsumoDiario” />
<cewolf:chart id=“diarioConsumo1” title=“Consumo Diário” type=“pie”>
cewolf:data
<cewolf:producer id=“ConsumoDiario” />
</cewolf:data>
</cewolf:chart>
[/code] [b]Contudo ao tentar rodar sempre recebo o seguinte erro:[/b] [i]type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: org/apache/jsp/ConsumoDiario
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
root cause
java.lang.NoClassDefFoundError: org/apache/jsp/ConsumoDiario
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Class.java:2328)
java.lang.Class.getConstructor0(Class.java:2640)
java.lang.Class.newInstance0(Class.java:321)
java.lang.Class.newInstance(Class.java:303)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:143)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:319)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:251)
javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
note The full stack trace of the root cause is available in the Sun-Java-System/Application-Server logs. [/i]
Alguém poderia me dar uma luz sobre oque está acontecendo com a utilização da minha classe ConsumoDiario? Obrigado