<html>
<head>
<Title>TestBeanNutzung</TITLE>
</head>
<body>
<jsp:useBean id="roster" class="roster.RosterBean" scope="session"/>
Test
</body>
</html>
dabei hab ich in struts-blank/web-inf/classes einen Ordner namens
roster in dem meine RosterBean.class liegt. Aber der Tomcat spuckt mir
immer nur aus:
type Exception report
message
description The server encountered an internal error () that prevented
it from fulfilling this request.
exception
javax.servlet.ServletException: javax/ejb/SessionBean
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
...
...
und weiter unten noch:
root cause
java.lang.NoClassDefFoundError: javax/ejb/SessionBean
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:488)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:106)
....
...
Da sich die class unter der referenzimplementierung einwandfrei
"usebeanen" lässt (dann aber halt struts-los) denk ich mal das da
irgendwo der tomcat die javax.ejb.sessionbean net findet.... aber wo
sag ich ihm das ? Hab in der Doku immer noch nix gefunden.
Danke für eure Hilfe *verzweifeltguck*
Jörg
> Da sich die class unter der referenzimplementierung einwandfrei
> "usebeanen" lässt (dann aber halt struts-los) denk ich mal das da
> irgendwo der tomcat die javax.ejb.sessionbean net findet.... aber wo
> sag ich ihm das ? Hab in der Doku immer noch nix gefunden.
Tomcat ist ein Servlet-, aber kein EJB-Container. M.a.W.: EJBs sind ihm
unbekannt (und einfach ein Jar-File [eine entsprechenden Bibliothek]
hinzufügen wird es in diesem Fall auch nicht bringen).
Tip: Fang erstmal mit Struts + "normalen" Beans und dem Servlet-Container
(also Tomcat) an. Wenn das läuft (und Du verstehst, warum und wie) wende Dich
den anderen Themen zu (und besorge Dir einen EJB-Container [manche sagen auch:
App.-Server], z.B. JBoss oder die freie Entwicklerlizenz von BEA (recht gute
Doku).
Gruß
Jonas
--
"Scientific progress goes 'boink'?" -- Hobbes
Danke schonmal
Jörg wrote:
^^
Quasindropel? Seramanus? Kopeldirtuquaxis? Oder einfach nur Müller?
> Danke erstmal für deinen Post, aber warum können die example-jsp pages
> (z.B. "num") beans usen ( in dem Fall "numguessbean") ?
Weil die dort verwendeten Beans keine EJBs sind, sondern "normale Java-Klasssen".
Das alles ist aber nur eine Vermutung: Deine bislang geposteten Auszüge
reichen nicht aus, das im Detail zu beantworten. Mir scheint aber, dass
Dein im ersten Beispiel gepostete "RosterBean" ein EJB ist - oder sowas,
jedenfalls scheint irgendeine eine Abhängigkeit zu javax.ejb.SessionBean zu
bestehen, das kennt der Tomcat nicht, kann es nicht laden und beschwert sich.
Die mit "<jsp:useBean ..." in einer JSP verwendeten Java-Klassen sind i.d.R.
"normale Java Klassen", jedenfalls dürfen sie keine Abhängikeiten haben, die
der Tomcat nicht auflösen kann.
Und nochmal: Tomcat ist _kein_ EJB-Container, sondern "nur" ein Servlet-Container.