JSP, Java Klassen, Variabeln

thinwath

Grünschnabel
Hallo,

gleich zu Anfang: Ich mache erst gerade die ersten Schritt in Sachen J2EE. Also nicht auslauchen :)

Ich hab jetzt per Hibernate eine DB gemapped und kann auch aus dieser einfach Werte rausholen, per HQL, native SQL etc. Das ist alles ok.

So, da ich versuche so wenig Java Code wie möglich in meine JSP zu packen, dachte ich mir, ich lager teilweise Methoden in Klassen aus. Jetzt will ich eigentlich nur, ein Select Menu erstellen, welches aus einer MySQL Tabelle erstellt werden soll.

Dazu habe ich die Klasse

Menu.java
Code:
package package.de;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class Menu {

	
	public static List selectHersteller() throws Exception{
		
		Configuration cfg = new Configuration().configure();
		
		SessionFactory sf = cfg.buildSessionFactory();
		Session sess = sf.openSession();
			
			Query query = sess.createQuery("Select name from Hersteller");
			List list = query.list();
				
			sess.close();			
			return list;
			
	}
}

die JSP
Code:
<%@ page import="java.util.*, java.text.*, java.util.List, package.de.Menu" %>
.
.
.
<td>Hersteller</td>
      <td><select name="hersteller" id="hersteller">
      <% 
     
      for( int i = 0; i < Menu.selectHersteller().size() ; i++){
    	    out.println("<option value=\"" + Menu.selectHersteller().get(i) + "\">"+ Menu.selectHersteller().get(i)+"</option>");
      }
      
      %>
      </select>

So bekomm ich jedoch nur eins:
Code:
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Exception in JSP: /index.jsp:38

35:       <td><select name="hersteller" id="hersteller">
36:       <% 
37:       
38:       for( int i = 0; i < Menu.selectHersteller().size() ; i++){
39:     	    out.println("<option value=\"" + Menu.selectHersteller().get(i) + "\">"+ Menu.selectHersteller().get(i)+"</option>");
40:       }
41:       


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.servlet.ServletException: org/hibernate/Session
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:125)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.NoClassDefFoundError: org/hibernate/Session
	org.apache.jsp.index_jsp._jspService(index_jsp.java:83)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.

Kann mir einer einen tip oder sowas geben, wahrscheinlich ist meine Denkweise falsch (das kann gut sein)

Über Antworten würde ich mich freuen und danke für Eure Zeit.
 
hm, was sagt dir denn:
Code:
java.lang.NoClassDefFoundError: org/hibernate/Session
?

Dir fehlen die Hibernate Bibliotheken im Classpath. Desweiteren würde ich ein Servlet vorschalten, dass die Requests entgegen nimmt, deine Anfrage ausführt, das ergebnis in den request Context legt und dann deine JSP mit diesem Wert arbeiten lassen. Dann brauchst noch weniger Logik in der JSP

Gruß
Ollie
 
Zurück