Newsgroup: it.comp.java
Titolo: JSP Creare , registrare e Utilizzare un EJB

CIao a tutti , sono nuovissimo di Java e JSP. 
Ho da fare una complessa procedura e mi è stato consigliato di farmi un EJB, quindi mi sono realizzato il mio file.java che contiene la mia classe. Ve lo riporto qui sotto.
file RequestGroup.java
#### code
// Java Document
import "java.sql.*";
import "java.util.*";
public class RequestGroup {
 int domdMax = 0; // Numero massimo di domande
 int domdMin = 0; // Numero minimo di domande
 String risp = "";
 String ctes;
 int cat1;
 int cat2;
 int cat3;
 int prom;
 Date data;
 int peso;
 
 // Costruttore della classe.
 public RequestGroup() {
  domdMax = 5; // Numero massimo di domande
  domdMin = 2; // Numero minimo di domande
 }
 
 // Metodo richiamato dalla pagina JSP. I metodi sono quelli passati dalla pagina JSP
 public String search() throws SQLException {
  String sql = null;
  Hashtable ht = new Hashtable();
 
  risp = inizio();
 
  if(risp.equals("false") {
   // Restituzione negativa
   if(prom != 0) {
    prom = 0;
    risp = search();
   } else if(cat3 != 0) {
    cat3 = 0;
    risp = search();
   } else if(cat2 != 0) {
    cat2 = 0;
    risp = search();
   } else {
    try {
     Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    } catch(ClassNotFoundException cnfe) {
     System.out.println("SQL Error: " + cnfe.getMessage());
    }
 
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/TESTdb", "root", "");
    Statement stmt = con.createStatement();
 
    sql = "select CATGCODC from BTCATG0F";
 
    ResultSet rs1 = stmt.executeQuery(sql);
 
    int i = 0;
 
    while(rs1.next()) {
     i++;
     ht.put(i, rs1.getInt(1));
    }
 
    rs1.close();
 
    conn.close();
 
    Random rnd = new Random(ht.size().longValue());
 
    int cod = ht.get(rnd.nextInt());
 
    cat1 = cod;
    risp = search();
   }   
 
  } else
   return risp;
 }
 
 public String inizio() throws SQLException {
  String sql = null;
  Hashtable ht = new Hashtable();
 
  try {
   Class.forName("org.gjt.mm.mysql.Driver").newInstance();
  } catch(ClassNotFoundException cnfe) {
   System.out.println("SQL Error: " + cnfe.getMessage());
  }
 
  Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/TESTdb", "root", "");
  Statement stmt = con.createStatement();
 
  sql = "select GRUPCODG, GRUPNOME, GRUPNDOM " +
        "from BTGRUP0F a " +
     "where NOT EXISTS (select SDOMCODG from BTSDOM0F b where a.GRUPCODG = b.SDOMCODG) and " +
     "(a.GRUPCODC = " + cat1 + ")";
 
  if(cat2 != 0) {
   sql += " and (a.GRUPCODS = " + cat2 + ")";
  }
 
  if(cat3 != 0) {
   sql += " and (a.GRUPCODP = " + cat3 + ")";
  }
 
  if(prom != 0) {
   sql += " and (a.GRUPPROM = " + prom + ")";
  }
 
  if(! data.equals("")) {
   sql += " and (a.GRUPDATA > '" + data + "')";
  }
 
  if(peso != 0) {
   sql += " and (a.GRUPPESO = " + peso + ")";
  }
 
  sql += " order by a.GRUPJUMP desc, a.GRUPPESO desc, a.GRUPCODG asc";
 
  ResultSet rs1 = stmt.executeQuery(sql);
 
  while(rs1.next()) {
   ht.put(rs1.getInt(1), rs1.getInt(3));
  }
 
  rs1.close();
 
  conn.close();
 
  int app = 0;
  String str = "";
 
  for(Enumeration e = ht.keys() ; e.hasMoreElements() ; ) {
   int group = e.nextElement();
   int domd = ht.get(group);
 
   if(((app + domd) < 5)) {
    app += domd;
 
    if(! str.equals(""))
     str += "|" + group;
    else
     str += group;
   }
      }
  if(app < 2) {
   str = "false"; 
  }
  return str;
 }
}
Provo a richiamarlo da una pagina JSP con questo codice:
<jsp:useBean id="requestGroup" class="RequestGroup" />
<jsp:setProperty name="requestGroup" property="ctes" value="BT0100000001" />
<jsp:setProperty name="requestGroup" property="cat1" value="1" />
<jsp:setProperty name="requestGroup" property="cat2" value="0" />
<jsp:setProperty name="requestGroup" property="cat3" value="0" />
<jsp:setProperty name="requestGroup" property="prom" value="0" />
<jsp:setProperty name="requestGroup" property="data" value="" />
<jsp:setProperty name="requestGroup" property="peso" value="0" />
<body>
 <jsp:getProperty name="requestGroup" property="risp" />
</body>
L'errore che mi riporta il server è:
java.lang.ClassNotFoundException: RequestGroup
bla bla bla...
bla bla bla...
bla bla bla...
Mettiamo che la classe sia corretta (se riuscite a dirmi se è sbagliata vi sono pure grato..:-))...che procedura devo eseguire x farmi riconoscere il mio EJB sul server? Io utilizzo Apache e TomCat su piattaforma Linux SUSE.
Ringrazio tutti in anticipo e scusate se ho scritto troppe cazzate :-P
-- 
-----------------------------------------------------------
Ultima >> Ultimate Web Design
 + Web Site - 
http://digilander.libero.it/ultimazone

 java.lang.ClassNotFoundException: RequestGroup
Significa che la tua classe non č presente nel classpath della tua web
application. Dovrebbe essere presente sotto la WEB-INF/classes (occhio alle
maiuscole/minuscole). Trattandosi di JSP, ti consiglio *vivamente* di
inserirla all'interno di un package, altrimenti rischi che Tomcat non te la
veda (c'e' stato un thread qualche giorno fa sull'argomento, oppure dai un
occhio a 
http://www.jguru.com/faq/view.jsp?EID=753900
, anche se il problema
non era legato all'uso dei jsp:useBean).
        Regards,
            Kazuma
--
I've got nothing against God. It's his fan club I can't stand.
Alex "Kazuma" Garbagnati, 
http://www.kazuma.net
EJB & Tomcat jGuru FAQ Manager, 
http://www.jGuru.com
Tutor "Progetto Scuole", 
http://www.JIA.it
Java Italian Association - SUN - MIUR

 non era legato all'uso dei jsp:useBean).
Intanto provo questa soluzione :-)
Ti ringrazio moltissimo, vedo di documentarmi un po intanto :-)


 java.lang.ClassNotFoundException: RequestGroup
Credo che l'istruzione useBean necessiti del percorso completo della
classe (package compreso) nell'attributo class, e dell'attributo scope per
sapere dove cercare l'oggetto.
es. <jsp:useBean id="requestGroup" class="it.pippo.RequestGroup"
scope="request/session/application" />
hope this help
ciao
mauro
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it