# Jsf - Imports der Java-Klasse werden nicht erkannt



## Timo-Beil (10. Januar 2007)

Hi,

Ich baue mir gerade meine erste JSF-Anwendung zusammen und habe folgendes Problem:

Die Java-Klasse, die die Anfragen der Jsp-Seite managed, soll unter Anderem pruefen, ob die Eingabewerte nicht null sind und ich will das mit der StringUtils.isEmpty Methode machen. Dazu importiere ich die "org.apache.commons.lang.StringUtils" 
Wenn ich die Java-Klasse über eine eigene Main-Methode, also losgelöst von der jsf-Anwendung starte geht das auch ohne Probleme aber wenn die Java-Klasse von der jsf-Anwendung aufgerufen wird haut mir mein Server immer folgendes um die Ohren:
"java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils".

Ich könnte die Überprüfung natürlich auch ohne die "isEmpty" Methode machen aber das Importieren funktioniert bei anderen Methoden auch nicht. Ich nehme an, dass ich irgendwo eintragen muss, dass die "org/apache/commons/lang/StringUtils" benutzt werden soll aber ich weiss leider nicht wo. Oder wo könnte der Fehler sonst liegen?


Vielen Dank,
Timo


----------



## TheLightning (10. Januar 2007)

Wäre ganz nett wenn du verkürzt deine relevanten Codeabschnitte posten könntest damit wir uns zumindest halbwegs ein Bild davon machen können wo der Fehler denn liegen könnte.

Gruß
Dominik


----------



## Timo-Beil (10. Januar 2007)

Jo klar. Allerdings läuft das Ganze, wenn ich die Klasse ohne die Jsf-Anwendung starte. Und wenn ich in die Java-Klasse einfach nur (return "erfolgreich") reinschreibe, dann zeigt mir mein Browser die Ergebnis.jsp Seite an. Der Fehler muss also beim Import der String-Utils-Methode liegen. Das sieht bei mir folgendermaßen aus:

package pagecode;

import org.apache.commons.lang.StringUtils;

public class Manager {
String auftragsnummer;

   public String verbinden() {
      if (StringUtils.isEmpty(auftragsnummer) == true)
         return "fehler";
      else return "erfolgreich";
   }
}


----------



## Timo-Beil (10. Januar 2007)

Ich habe gerade gemerkt, dass die org.apache.commons.lang.StringUtils eine Klasse ist, die nicht in der Java-Standard Bibliothek enthalten ist und die ich nachträglich hinzugefügt habe. Wenn ich in meiner Java-Klasse nämlich eine Java-Standard-Bibliotheks-Klasse nehme wie z.b. java.math.*; und die benutze dann gehts. Allerdings brauche ich leider später noch andere Nicht-Standard-Bibliotheks-Klassen, ich müsste das also schon wissen.


----------



## TheLightning (10. Januar 2007)

Soll das eine ManagedBean darstellen oder wie?
Getter und Setter Methoden!

Wie wäre es denn wenn du an der entsprechenden Stelle mal einen Haltepunkt setzt und den Debugger verwendest.. dann kannst du während der Laufzeit feststellen wie sich deine Applikation verhält. Mit Vermutungen werden wir hier wohl eher nicht weiterkommen.


----------



## Timo-Beil (10. Januar 2007)

Ich habe jetzt ja nur den relevanten Codeteil gepostet. Klar benutze ich Getter und Setter -Methoden. 

Ich bin mir sicher, dass das Problem bei diesem Import der StringUtils Methode liegt, da mir der Server das ja als Fehlermeldung rausgibt und das Ganze läuft, wenn ich die isEmpty Überprüfung weglasse. 

Und die Klasse soll eine Managed-Bean darstellen, ja.


----------



## Timo-Beil (10. Januar 2007)

Ich kann mit dem Debug-Modus leider nicht so richtig umgehen. Wenn ich die Anwendung im Debug-Modus starte erhalte ich keine wirkliche Fehlermeldung, sondern nur die Browser-Fehlermeldung "HTTP 500 - Interner Serverfehler"

Das Einzige, was ich sagen kann ist, dass der Server auf dem die Anwendung läuft mir den "java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils" Fehler rausgibt.


----------

