# Problem mit JavaBean



## Phiman (29. Jan 2004)

Ich habe Probleme eine Java Bean in einer jsp zu benutzen. Wenn ich die Seite aufrufe wird mir folgende Fehlermeldung angezeigt:

Unable to compile class for JSPerror: Invalid class file format in c:\tomcat\webapps\meins\StringMem.class.  wrong version: 46, expected 45

Was läßt sich dagegen unternehmen?

Phi


----------



## Guest (30. Jan 2004)

poste doch einfach mal deinen (relevanten) jsp-code und bean-code - die fehlermeldung sagt mir grad mal garnix....


----------



## Phiman (30. Jan 2004)

Jo, gerne. Ist ne kleine Sache, ich bin nämlich erst seit kurzen dabei 


die jsp:


```
<jsp:useBean id="messBean" class="StringMem" scope="session"/>
<%! String message;%>
<% if((message = request.getParameter("pwFeld")) != null) { %>
  Hier klicken:

  <a href=tester.jsp>klick</a>
  <% messBean.setMessage(message); %>
<% } %>
```


Und hier die Bean:


```
class StringMem {
private String message;

  public StringMem() {}

  public void setMessage (String message) {
    this.message = message;
  }

  public String getMessage() {
    return message;
  }
}
```


----------



## Guest (2. Feb 2004)

meines Wissens nach musst du deine Bean (zumindest beim Tomcat) in ein Package packen. K.A. ob das mit deinem Fehler etwas zu tun hat, aber n Versuch ist es Wert.


```
<jsp:useBean id="messBean" class="myPackage.StringMem" scope="session"/>
```
...
-----

package myPackage;


```
class StringMem {
```
...


----------



## Phiman (2. Feb 2004)

Den Versuch war es wert. Hat aber leider trotzdem nicht funktioniert, sofern ich alles richtig gemacht habe.
Ich hab die Klasse in ein Package gepackt. Sie in einen dem Packagenamen entsprechenden Ordner verfrachtet, diesen in einen im CLASSPATH aufgeführtem Verzeichnis deponiert.
Leider wird nach wie vor derselbe Fehler ausgegeben + weitere:

org.apache.jasper.JasperException: Unable to compile class for JSPerror: Invalid class file format in c:\tomcat\webapps\meins\phi\StringMem.class.  wrong version: 46, expected 45
C:\tomcat\work\localhost_8080%2Fmeins\_0002flogin_0002ejsplogin_jsp_0.java:64: Class phi.StringMem not found in type declaration.
                phi.StringMem messBean = null;
                   ^
C:\tomcat\work\localhost_8080%2Fmeins\_0002flogin_0002ejsplogin_jsp_0.java:67: Class phi.StringMem not found in type declaration.
                    messBean= (phi.StringMem)
                                  ^
C:\tomcat\work\localhost_8080%2Fmeins\_0002flogin_0002ejsplogin_jsp_0.java:72: Class phi.StringMem not found in type declaration.
                            messBean = (phi.StringMem) Beans.instantiate(this.getClass().getClassLoader(), "phi.StringMem");
                                           ^
4 errors


Bin über jeden Vorschlag dankbar. Möchte ungern auf Beans verzichten


----------



## el_barto (2. Feb 2004)

poste mal deine frage zusätzlich hier: http://www.jsp-develop.de
ist das beste deutsche jsp forum, dass ich kenne. vielleicht kann dir dort jemand helfen.


----------



## mala (3. Feb 2004)

Wo liegt denn deine compilierte Klasse? darin muss se liegen:
WEB-INF/classes/phi/

gruss
mala


----------



## Phiman (3. Feb 2004)

OK, gut zu wissen wo die Klasse hingehört  Danke!

Die Zahl der Fehler konnte auf 3 reduziert werden. Es bleiben:

C:\tomcat\work\localhost_8080%2Fmeins\_0002flogin_0002ejsplogin_jsp_0.java:64: Class phi.StringMem not found in type declaration. 
phi.StringMem messBean = null; 
^ 
C:\tomcat\work\localhost_8080%2Fmeins\_0002flogin_0002ejsplogin_jsp_0.java:67: Class phi.StringMem not found in type declaration. 
messBean= (phi.StringMem) 
^ 
C:\tomcat\work\localhost_8080%2Fmeins\_0002flogin_0002ejsplogin_jsp_0.java:72: Class phi.StringMem not found in type declaration. 
messBean = (phi.StringMem) Beans.instantiate(this.getClass().getClassLoader(), "phi.StringMem"); 
^ 
3 errors


Und ich denke das es sich hierbei wohl um ein und den selben Fehler handelt. Habe ich vielleicht im jsp code irgendetwas vergessen?

@el_barto, werde ich auf alle Fälle machen wenn wir hier nicht weiterkommen, danke!


----------



## Guest (4. Feb 2004)

deine Anweisung in der jsp lautet wirklich

<jsp:useBean id="messBean" class="phi.StringMem" scope="session"/>  und die kompilierte Datei StringMem.class liegt in WEB-INF/classes/phi?


----------



## Phiman (4. Feb 2004)

Habs nochmal überprüft, und ja, es ist genau so...


----------

