Heim >Java >javaLernprogramm >Java-Ausnahmesammlung
Schlüsselwörter: Java
Arithmetische Ausnahmeklasse: ArithmeticExecption
Nullzeiger-Ausnahmeklasse: NullPointerException
Typumwandlungsausnahme: ClassCastException
Array-negative Subscript-Ausnahme : NegativeArrayException
Array-Index außerhalb der Grenzen Ausnahme: ArrayIndexOutOfBoundsException
Sicherheitsverletzungsausnahme: SecurityException
Datei beendet Ausnahme: EOFException
Datei nicht gefunden Ausnahme gefunden: FileNotFoundException
String-to-Number-Ausnahme: NumberFormatException
Operationsdatenbank-Ausnahme: SQLException
Eingabe- und Ausgabeausnahme: IOException
Methode nicht gefunden, Ausnahme:NoSuchMethodException
1. java.lang.nullpointerException
Diese Ausnahme muss schon oft aufgetreten sein. Die Erklärung für die Ausnahme lautet: „Das Programm hat einen Nullzeiger festgestellt.“ Initialisierte Objekte oder nicht vorhandene Objekte treten häufig bei Vorgängen wie dem Erstellen von Bildern und dem Aufrufen von Arrays auf. Beispielsweise ist das Bild nicht initialisiert oder der Pfad beim Erstellen des Bildes ist falsch. Das Auftreten von Nullzeigern bei Array-Operationen ist in vielen Fällen ein häufiger Fehler von Freunden, die gerade erst anfangen, Programmieren zu lernen, das heißt, sie verwechseln die Initialisierung des Arrays mit der Initialisierung der Array-Elemente. Bei der Initialisierung des Arrays wird dem Array der erforderliche Speicherplatz zugewiesen. Die Elemente im initialisierten Array wurden nicht instanziiert und sind noch leer. Daher muss jedes Element initialisiert werden (wenn es aufgerufen werden soll)
2. java.lang.classnotfoundException
Diese Ausnahme ist ein häufiges Problem, das auftritt, wenn viele Programmierer, die ursprünglich in Entwicklungsumgebungen wie jb entwickelt haben, Pakete unter jb unter wtk kompilieren. Die Erklärung der Ausnahme ist „Die angegebene Klasse existiert nicht.“ Hier prüfen wir hauptsächlich, ob der Name und der Pfad der Klasse korrekt sind. Wenn das Paket unter jb erstellt wird, wird das Paket normalerweise standardmäßig hinzugefügt, daher sollten Sie nach dem Wechsel zu wtk Add darauf achten der Pfad zum Paket.
3. java.lang.arithmeticException
Die Erklärung dieser Ausnahme lautet „Ausnahme bei mathematischen Operationen“. Wenn beispielsweise eine Operation wie Division durch Null im Programm auftritt, ist dies eine Ausnahme Wenn eine Anomalie auftritt, sollte jeder die in seinem Programm enthaltenen mathematischen Operationen sorgfältig überprüfen, um festzustellen, ob etwas mit der Formel nicht stimmt.
4. java.lang.arrayindexoutofboundsexception
Ich glaube, viele Freunde sind oft auf diese Ausnahme gestoßen. Die Erklärung für die Ausnahme ist „Array-Index außerhalb der Grenzen“. Wenn Sie also ein Array aufrufen, müssen Sie sorgfältig prüfen, ob der von Ihnen aufgerufene Index den Bereich des Arrays überschreitet. Im Allgemeinen ist ein Anzeigeaufruf (d. h. die direkte Verwendung einer Konstante als Index) nicht anfällig Solche Fehler, aber implizite Aufrufe (d. h. die Verwendung von Variablen zur Darstellung von Indizes) gehen häufig schief. Eine andere Situation besteht darin, dass die Länge des im Programm definierten Arrays durch bestimmte Methoden bestimmt und nicht im Voraus deklariert wird. Überprüfen Sie am besten zuerst die Länge des Arrays, um diese Ausnahme zu vermeiden.
5. java.lang.illegalargumentException
Die Erklärung dieser Ausnahme ist „Methodenparameterfehler“. Viele Methoden in j2me-Klassenbibliotheken verursachen in einigen Fällen solche Fehler, wie z. B. Diese Ausnahme wird treten auf, wenn der Lautstärkeparameter in der Lautstärkeanpassungsmethode als negative Zahl geschrieben wird. Ein weiteres Beispiel sind die drei Werte in der Methode g.setcolor(int red, int green, int blue). Es sind mehr als 255. Sobald wir diese Ausnahme gefunden haben, müssen wir schnell prüfen, ob bei der Parameterübergabe im Methodenaufruf ein Fehler vorliegt.
6.java.lang.illegalaccessException
Die Erklärung dieser Ausnahme lautet „Keine Zugriffsberechtigung“, wenn die Anwendung eine Klasse aufrufen möchte, die aktuelle Methode jedoch keine Zugriffsberechtigung dazu hat Die Klasse Diese Ausnahme wird auftreten. Bitte beachten Sie diese Ausnahme bei der Verwendung von Paketen im Programm.
Es gibt viele weitere Ausnahmen, daher werde ich sie nicht einzeln auflisten. Ich möchte jedoch erklären, dass ein qualifizierter Programmierer ansonsten ein umfassendes Verständnis für häufige Probleme im Programm und entsprechende Lösungen haben muss Wenn Sie einfach damit aufhören, Programme zu schreiben, ohne sie zu ändern, wird dies große Auswirkungen auf Ihre eigene Entwicklung haben. Alle Ausnahmebeschreibungen finden Sie in der API.
java.lang.AbstractMethodError
Fehler in der abstrakten Methode. Wird ausgelöst, wenn die Anwendung versucht, eine abstrakte Methode aufzurufen.
java.lang.AssertionError
Assertionsfehler. Wird verwendet, um einen Behauptungsfehler anzuzeigen.
java.lang.ClassCircularityError
Klassenzirkelabhängigkeitsfehler. Beim Initialisieren einer Klasse wird diese Ausnahme ausgelöst, wenn eine zirkuläre Abhängigkeit zwischen Klassen erkannt wird.
java.lang.ClassFormatError
Klassenformatfehler. Wird ausgelöst, wenn die Java Virtual Machine versucht, eine Java-Klasse aus einer Datei zu lesen und erkennt, dass der Inhalt der Datei nicht einem gültigen Format für die Klasse entspricht.
java.lang.Error
Fehler. Ist die Basisklasse für alle Fehler und wird verwendet, um schwerwiegende Probleme beim Programmbetrieb zu identifizieren. Diese Probleme beschreiben normalerweise eine ungewöhnliche Situation, die von der Anwendung nicht erkannt werden sollte.
Grund:
1. Die externen Ressourcen, auf die das System zugreift, sind nicht geschlossen, was zu einer großen Verschwendung externer Ressourcen führt, was schließlich dazu führen kann, dass das System nicht mehr normal funktioniert.
2. Die externen Ressourcen Wenn das System zu oft geschlossen wird, kann das externe System nicht normal damit umgehen.
3. Es treten Anomalien bei den externen Ressourcen auf, auf die das System zugreift.
Lösung:
1. Bevor Sie auf externe Ressourcen zugreifen, prüfen Sie zunächst, ob die Ressource (z. B. eine Datenbank) angeschlossen oder normal betrieben werden kann.
2. Wenn beim Zugriff auf externe Ressourcen eine Verbindung hergestellt wird, muss der Herunterfahrvorgang durchgeführt werden und darf nur einmal durchgeführt werden.
3. Versuchen Sie, externe Ressourcen im selben Vorgang gemeinsam zu nutzen, um den Ressourcenverbrauch des Vorgangs zu reduzieren und die Ausführungseffizienz des Programms zu verbessern
java.lang.ExceptionInInitializerError
Fehler beim Initialisierungsprogramm. Wird ausgelöst, wenn während der Ausführung des statischen Initialisierers einer Klasse eine Ausnahme auftritt. Der statische Initialisierer bezieht sich auf das statische Anweisungssegment, das direkt in der Klasse enthalten ist.
java.lang.IllegalAccessError
Unzulässiger Zugriffsfehler. Diese Ausnahme wird ausgelöst, wenn eine Anwendung versucht, auf ein Feld (Field) einer Klasse zuzugreifen oder es zu ändern oder ihre Methode aufzurufen, aber die Sichtbarkeitsdeklaration des Felds oder der Methode verletzt.
java.lang.InkompatibleClassChangeError
Inkompatibler Klassenänderungsfehler. Diese Ausnahme wird ausgelöst, wenn eine inkompatible Änderung in der Klassendefinition auftritt, von der die ausgeführte Methode abhängt. Im Allgemeinen wird dieser Fehler leicht verursacht, wenn die Deklarationsdefinition einiger Klassen in der Anwendung geändert wird, ohne die gesamte Anwendung neu zu kompilieren und sie dann direkt auszuführen.
java.lang.InstantiationError
Instantiierungsfehler. Diese Ausnahme wird ausgelöst, wenn eine Anwendung versucht, eine abstrakte Klasse oder Schnittstelle über den neuen Operator von Java zu erstellen.
java.lang.InternalError
Interner Fehler. Wird verwendet, um anzuzeigen, dass in der Java Virtual Machine ein interner Fehler aufgetreten ist.
java.lang.LinkageError
Linkfehler. Dieser Fehler und alle seine Unterklassen weisen darauf hin, dass eine Klasse von anderen Klassen abhängt. Nachdem die Klasse kompiliert wurde, ändert die abhängige Klasse ihre Klassendefinition, ohne alle Klassen neu zu kompilieren, was den Fehlerzustand verursacht.
java.lang.NoClassDefFoundError
Klassendefinition nicht gefunden Fehler. Dieser Fehler wird ausgelöst, wenn die Java Virtual Machine oder der Klassenlader versucht, eine Klasse zu instanziieren, und die Definition der Klasse nicht finden kann.
java.lang.NoSuchFieldError
Das Feld existiert nicht. Dieser Fehler wird ausgelöst, wenn eine Anwendung versucht, auf ein Feld einer Klasse zuzugreifen oder dieses zu ändern, für die es keine Definition für dieses Feld gibt.
java.lang.NoSuchMethodError
Es liegt kein Fehler in der Methode vor. Dieser Fehler wird ausgelöst, wenn die Anwendung versucht, eine Methode einer Klasse aufzurufen, die keine Definition für die Methode hat.
java.lang.OutOfMemoryError
Fehler wegen unzureichendem Speicher. Dieser Fehler wird ausgelöst, wenn der verfügbare Speicher nicht ausreicht, damit die Java Virtual Machine ein Objekt zuweisen kann.
java.lang.StackOverflowError
Stapelüberlauffehler. Dieser Fehler wird ausgelöst, wenn eine Anwendung zu tiefe rekursive Aufrufe durchführt und einen Stapelüberlauf verursacht.
java.lang.ThreadDeath
Der Thread endet. Dieser Fehler wird ausgelöst, wenn die Stop-Methode der Thread-Klasse aufgerufen wird, um das Ende des Threads anzuzeigen.
java.lang.UnknownError
Unbekannter Fehler. Wird verwendet, um anzuzeigen, dass in der Java Virtual Machine ein unbekannter schwerwiegender Fehler aufgetreten ist.
java.lang.UnsatisfiedLinkError
Unsatisfied-Link-Fehler. Wird ausgelöst, wenn die Java Virtual Machine keine native Sprachdefinition einer Klasse findet, die eine native Methode deklariert.
java.lang.UnsupportedClassVersionError
Nicht unterstützter Klassenversionsfehler. Dieser Fehler wird ausgegeben, wenn die Java Virtual Machine versucht, eine bestimmte Klassendatei zu lesen, dabei jedoch feststellt, dass die Haupt- und Nebenversionsnummern der Datei von der aktuellen Java Virtual Machine nicht unterstützt werden.
java.lang.VerifyError
Verifizierungsfehler. Dieser Fehler wird ausgegeben, wenn der Validator eine interne Inkompatibilität oder ein Sicherheitsproblem in einer Klassendatei erkennt.
java.lang.VirtualMachineError
Fehler der virtuellen Maschine. Wird verwendet, um eine Situation anzuzeigen, in der eine virtuelle Maschine zerstört wurde oder nicht über ausreichende Ressourcen verfügt, um den Betrieb fortzusetzen.
java.lang.ArithmeticException
Arithmetische Bedingungsausnahme. Zum Beispiel: Ganzzahldivision durch Null usw.
java.lang.ArrayIndexOutOfBoundsException
Array-Index-Ausnahme außerhalb der Grenzen. Wird ausgelöst, wenn der Index im Array negativ oder größer oder gleich der Arraygröße ist.
java.lang.ArrayStoreException
Array-Speicherausnahme. Wird ausgelöst, wenn ein Objekt eines nicht als Array deklarierten Typs in einem Array gespeichert wird.
java.lang.ClassCastException
Klassenumwandlungsausnahme. Angenommen, es gibt die Klassen A und B (A ist nicht die übergeordnete Klasse oder Unterklasse von B) und O ist eine Instanz von A. Dann wird diese Ausnahme ausgelöst, wenn O gezwungen wird, als Instanz von Klasse B konstruiert zu werden. Diese Ausnahme wird oft als Cast-Ausnahme bezeichnet.
java.lang.ClassNotFoundException
Klassenausnahme nicht gefunden. Diese Ausnahme wird ausgelöst, wenn die Anwendung versucht, eine Klasse basierend auf einem Klassennamen in Zeichenfolgenform zu erstellen, aber nach dem Durchlaufen von CLASSPAH die Klassendatei mit dem entsprechenden Namen nicht finden kann.
java.lang.CloneNotSupportedException
Klonausnahme wird nicht unterstützt. Wenn die Cloneable-Schnittstelle nicht implementiert ist oder die Methode clone nicht unterstützt wird, wird beim Aufruf der Methode clone() diese Ausnahme ausgelöst.
java.lang.EnumConstantNotPresentException
Es gibt keine Ausnahme für Aufzählungskonstanten. Diese Ausnahme wird ausgelöst, wenn eine Anwendung versucht, über den Namen und den Aufzählungstyp auf ein Aufzählungsobjekt zuzugreifen, das Aufzählungsobjekt jedoch keine Konstante enthält.
java.lang.Exception
Root-Ausnahme. Wird verwendet, um die Situation zu beschreiben, die die Anwendung erfassen möchte.
java.lang.IllegalAccessException
Unzulässige Zugriffsausnahme. Diese Ausnahme wird ausgelöst, wenn die Anwendung versucht, eine Instanz einer Klasse zu erstellen, auf die Klasseneigenschaften zuzugreifen oder die Klassenmethoden durch Reflektion aufzurufen, und auf die Definition der Klasse, des Attributs, der Methode oder des Konstruktors zu diesem Zeitpunkt nicht zugegriffen werden kann.
java.lang.IllegalMonitorStateException
Unzulässige Überwachungsstatusausnahme. Diese Ausnahme wird ausgelöst, wenn ein Thread versucht, auf den Monitor eines Objekts (O) zu warten, das ihm nicht gehört, oder andere Threads benachrichtigt, auf den Monitor des Objekts (O) zu warten.
java.lang.IllegalStateException
Unzulässige Statusausnahme. Diese Ausnahme wird ausgelöst, wenn eine Methode in der Java-Umgebung und -Anwendung aufgerufen wird, bevor sie sich in einem zulässigen Aufrufzustand befindet.
java.lang.IllegalThreadStateException
Unzulässige Thread-Statusausnahme. Wenn sich der Landkreis nicht im legalen Aufrufstatus einer bestimmten Methode befindet und die Methode aufgerufen wird, wird eine Ausnahme ausgelöst.
java.lang.IndexOutOfBoundsException
Index-Out-of-Bounds-Ausnahme. Diese Ausnahme wird ausgelöst, wenn der Indexwert einer Sequenz kleiner als 0 oder größer oder gleich der Sequenzgröße ist.
java.lang.InstantiationException
Instanziierungsausnahme. Diese Ausnahme wird ausgelöst, wenn versucht wird, eine Instanz einer Klasse über die Methode newInstance() zu erstellen, und die Klasse eine abstrakte Klasse oder Schnittstelle ist.
java.lang.InterruptedException
Abgebrochene Ausnahme. Diese Ausnahme wird ausgelöst, wenn ein Thread längere Zeit wartet, schläft oder anderweitig angehalten wird und andere Threads den Thread über die Interrupt-Methode von Thread beenden.
java.lang.NegativeArraySizeException
Die Arraygröße ist negativ. Diese Ausnahme wird ausgelöst, wenn ein Array mit einem negativen Größenwert erstellt wird.
java.lang.NoSuchFieldException
Es gibt keine Ausnahme in der Eigenschaft. Diese Ausnahme wird beim Zugriff auf eine nicht vorhandene Eigenschaft einer Klasse ausgelöst.
java.lang.NoSuchMethodException
Es gibt keine Ausnahme in der Methode. Diese Ausnahme wird beim Zugriff auf eine nicht vorhandene Methode einer Klasse ausgelöst.
java.lang.NullPointerException
Nullzeiger-Ausnahme. Diese Ausnahme wird ausgelöst, wenn die Anwendung versucht, null zu verwenden, wenn ein Objekt erforderlich ist. Zum Beispiel: Aufrufen der Instanzmethode des Nullobjekts, Zugriff auf die Eigenschaften des Nullobjekts, Berechnen der Länge des Nullobjekts, Verwenden der Throw-Anweisung zum Auslösen von Null usw.
java.lang.NumberFormatException
Ausnahme beim Zahlenformat. Diese Ausnahme wird ausgelöst, wenn versucht wird, einen String in einen angegebenen numerischen Typ zu konvertieren, und der String nicht dem für den numerischen Typ erforderlichen Format entspricht.
java.lang.RuntimeException
Laufzeitausnahme. Ist die übergeordnete Klasse für alle Ausnahmen, die während des normalen Betriebs der Java Virtual Machine ausgelöst werden können.
java.lang.SecurityException
Sicherheitsausnahme. Vom Sicherheitsmanager ausgelöste Ausnahme, die auf eine Sicherheitsverletzung hinweist.
java.lang.StringIndexOutOfBoundsException
String-Index-Ausnahme außerhalb der Grenzen. Diese Ausnahme wird ausgelöst, wenn auf ein Zeichen in einer Zeichenfolge mit einem Indexwert zugegriffen wird, der kleiner als 0 oder größer oder gleich der Sequenzgröße ist.
java.lang.StringIndexOutOfBoundsException
String-Out-of-Bounds-Fehler und andere String-Klassen-bezogene Fehler
Codesegment 4:
String s_all_power = " 1010011";
String s_access_power = s_all_power.substring(3,4);
Beschreibung:
Die Funktion des obigen Codeausschnitts besteht darin, das 4. Zeichen im zu erhalten Zeichenfolge s_all_power.
Erklärung:
Unter normalen Umständen gibt es kein Problem mit dem Programm. Wenn die Länge von s_all_power aus irgendeinem Grund kürzer wird, gibt das Programm einen Zeichenfolgenfehler aus.
Lösung: Wenn Sie einen String (substring, charAt) abfangen, ihn in ein Byte-Array konvertieren (getBytes) und einen Zeichen-Array in einen String (valueOf) konvertieren, überprüfen Sie zunächst die Existenz des String-Objekts (Whether es ist leer) und die Länge werden vor dem Fortfahren überprüft.
Umgeschrieben:
String s_all_power = "1010011";
if (s_all_power.length>4)
String s_access_power = s_all_power.substring(3 , 4);
java.lang.TypeNotPresentException
Es gibt keine Ausnahme im Typ. Diese Ausnahme wird ausgelöst, wenn eine Anwendung versucht, auf einen Typ als Zeichenfolgendarstellung des Typnamens zuzugreifen, der Typ jedoch anhand des angegebenen Namens nicht gefunden werden kann. Der Unterschied zwischen dieser Ausnahme und ClassNotFoundException besteht darin, dass diese Ausnahme eine ungeprüfte Ausnahme ist, während ClassNotFoundException eine geprüfte Ausnahme ist.
java.lang.UnsupportedOperationException
Nicht unterstützte Methodenausnahme. Ausnahme, die angibt, dass die angeforderte Methode nicht unterstützt wird.
Ausnahme
javax.servlet.jsp.JspException: Zuordnung für Aktion /Login kann nicht abgerufen werden (/Login ist Ihr Aktionsname)
Mögliche Gründe
Die Aktion ist in struts-config.xml nicht definiert oder es wurde keine passende Aktion gefunden, z. B. die Verwendung von
in einer JSP-Datei --------------- -------------------------------------------------- -------------------------------------------------- --
Ausnahme
org.apache.jasper.JasperException: Definition für Formular-Bean null kann nicht abgerufen werden
Mögliche Gründe
Diese Ausnahme liegt daran, dass Struts entsprechend zu struts-config.xml Das Mapping hat das von der Aktion erwartete Formular-Bean nicht gefunden. In den meisten Fällen kann dies durch eine Diskrepanz zwischen dem in der Form-Bean festgelegten Namensattribut und dem in der Aktion festgelegten Namensattribut verursacht werden. Mit anderen Worten: Sowohl Aktion als auch Formular sollten jeweils ein Namensattribut haben, das genau übereinstimmt, einschließlich der Groß-/Kleinschreibung. Dieser Fehler tritt auch auf, wenn der Aktion kein Namensattribut zugeordnet ist. Wenn das Namensattribut in der Aktion nicht angegeben ist, ist der Aktion kein Namensattribut zugeordnet. Wenn eine Aktion bestimmte Steuerelemente erstellt, z. B. das Springen zur entsprechenden JSP-Seite basierend auf Parameterwerten, anstatt Formulardaten zu verarbeiten, wird das Namensattribut natürlich auch nicht verwendet. Dies ist auch eine der Möglichkeiten, Aktionen zu verwenden.
------------------------------------------- ---- ---------------------------------------------- ---- -------------------
Ausnahme
Es konnte keine Aktionsinstanz für Pfad /xxxx erstellt werden
Mögliche Gründe
Besonderer Tipp: Da dieser Fehler in vielen Situationen auftreten kann, wird empfohlen, die Protokoll-/Debugstufe Ihres Webservers zu erhöhen, damit Sie potenzielle Fehler anhand weiterer Informationen erkennen können Beim Versuch, eine Aktionsklasse zu erstellen, für die Sie die Zuordnung in struts-config.xml festgelegt haben (d. h. das Tag
Es gibt viele Gründe, warum die über das Klassenattribut des Aktions-Tags in struts-config.xml angegebene Aktionsklasse nicht gefunden werden kann, zum Beispiel: Fehler beim Auffinden der kompilierten Klassendatei. Fehler beim Platzieren der kompilierten .class-Datei für die Aktion im Klassenpfad (Bei der Webentwicklung befindet sich der Speicherort der Klasse in WEB-INF/classes, daher muss sich Ihre Aktionsklasse in diesem Verzeichnis befinden. Beispielsweise befindet sich Ihre Aktionsklasse in WEB -INF/classes/action/Login.class, dann ist es beim Festlegen des Attributtyps der Aktion in struts -config.xml action.Login).
Rechtschreibfehler, das passiert auch von Zeit zu Zeit, und ist nicht leicht zu finden. Achten Sie besonders auf die Groß-/Kleinschreibung des Anfangsbuchstabens und des Namens des Pakets.
------------------------------------------- ---- ---------------------------------------------- ---- -------------------
Exception
javax.servlet.jsp.JspException: Keine Getter-Methode für die Eigenschaft Benutzername von bean org. apache.struts.taglib.html.BEAN
Mögliche Gründe
Es ist keine Getter-Methode für eine Variable im Formular-Bean definiert
Dieser Fehler tritt hauptsächlich auf Die vom Formular übermittelte FormBean muss, wenn sie mit Struts markiert ist, eine getUsername()-Methode in der FormBean enthalten. Beachten Sie den Buchstaben „U“.
------------------------------------------- ---- ---------------------------------------------- ---- -------------------
Ausnahme
java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm
Mögliche Gründe
Dieser Fehler tritt hauptsächlich auf, wenn die entsprechende Java-.class-Datei nicht im Klassenpfad gefunden werden kann. Wenn dieser Fehler auftritt, während die Webanwendung ausgeführt wird, liegt dies hauptsächlich daran, dass sich die angegebene Klassendatei nicht im Klassenpfad des Webservers befindet (/WEB-INF/classes und /WEB-INF/lib). Der Grund für den obigen Fehler ist, dass die ActionForm-Klasse nicht gefunden werden kann.
------------------------------------------- ---- ---------------------------------------------- ---- -------------------
Ausnahme
javax.servlet.jsp.JspException: Ausnahme beim Erstellen der Bean der Klasse org. apache.struts .action.ActionForm: {1}
Mögliche Gründe
Instanziieren Sie die von Struts bereitgestellte ActionForm-Klasse direkt, anstatt eine von ActionForm abgeleitete Klasse zu instanziieren. Dies kann implizit auftreten, wenn Sie ein Formular angeben -bean ist diese Struts-ActionForm-Klasse, anstatt ein untergeordnetes Element dieser Klasse für die Form-Bean anzugeben.
Das Fehlen einer von ActionForm abgeleiteten Klasse mit einer Aktion zu verknüpfen, kann ebenfalls zu diesem Fehler führen.
---- ---------------------------------------------- ---- ---------------------------------------------- ---- ---------
Ausnahme
javax.servlet.jsp.JspException: ActionMappings- oder ActionFormBeans-Sammlung kann nicht gefunden werden
Mögliche Gründe
Entweder das Tag, das das Struts-ActionServlet identifiziert, oder das Tag, das die Erweiterung .do zuordnet, oder beide sind nicht in web.xml deklariert.
Tipp- oder Rechtschreibfehler in struts-config.xml können ebenfalls dazu führen, dass diese Ausnahme auftritt. Beispielsweise fehlt das Schlusssymbol /> eines Tags. Überprüfen Sie dies am besten mit dem Struts-Konsolentool.
Darüber hinaus muss im Web „Load-on-Startup“ deklariert werden.
Eine weitere Sache im Zusammenhang mit der Verwendung von Load-on-Startup ist, dass die Verwendung von Struts zum Vorkompilieren von JSP-Dateien ebenfalls diese Ausnahme verursachen kann.
------------------- - ------------------------------------------------- - -----------------
Exception
java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils. java :1223)
Mögliche Gründe
Dem Forward-Element in struts-config.xml fehlt das Pfadattribut. Es sollte beispielsweise folgende Form haben:
------------------------ -------- ------------------------------------------ -----------------------------------------
Ausnahme
javax.servlet .jsp.JspException: Bean org.apache.struts.taglib.html.BEAN kann in keinem Bereich gefunden werden
Wahrscheinliche Ursachen
Versuch, untergeordnete Formularelemente zu verwenden außerhalb des Struts-Formular-Tags. Dies passiert häufig, wenn Sie Struts-HTML-Markup im Hintergrund verwenden. Beachten Sie auch, dass Sie versehentlich Bodyless-Tags verwenden können. Der Webserver wird es beispielsweise beim Parsen als Bodyless-Tag behandeln. Wenn Sie es erneut verwenden, wird es so behandelt Ein Problem besteht darin, dass bei der Einführung der HTML-Tag-Bibliothek mit taglib der von Ihnen verwendete Präfixwert nicht html ist.
------------------------------------------- ---- ---------------------------------------------- ---- -------------------
Ausnahme
javax.servlet.jsp.JspException: Fehlende Nachricht für Schlüssel xx.xx .xx
Wahrscheinliche Ursachen
Dieses Schlüssel-Wert-Paar ist nicht in der Ressourcendatei ApplicationResources.properties definiert. Wenn Sie bei der Verwendung von Eclipse häufig auf diese Situation stoßen, löscht Eclipse automatisch die Ressourcendateien im Klassenverzeichnis, wenn das Projekt neu kompiliert wird.
Wenn sich die Ressourcendatei ApplicationResources.properties nicht im Klassenpfad befindet, sollte die Ressourcendatei im Verzeichnis WEB-INF/classes abgelegt werden und natürlich muss sie in struts-config.xml definiert werden)
----- ----------------------------------------- --------- -------------------------- --------- --------
Ausnahme
Nachrichtenressourcen können unter dem Schlüssel org.apache.struts.action.MESSAGE nicht gefunden werden
Mögliche Gründe
Offensichtlich tritt dieser Fehler bei der Verwendung von Ressourcendateien auf und Struts findet die Ressourcendateien nicht.
Impliziter Versuch, Nachrichtenressourcen zu verwenden, die nicht verfügbar sind (z. B. die Verwendung eines leeren html:options-Tags anstelle der Angabe der Optionen im Textkörper – dies setzt voraus, dass Optionen in der Datei ApplicationResources.properties angegeben sind)
XML-Parser-Probleme – zu viele, zu wenige, falsche/inkompatible Versionen
---------------------------- -------------------------------------------------- ----------------------------------
Abnormal
Seltsam und scheinbar Zufällige Zeichen in HTML und auf dem Bildschirm, jedoch nicht im Original-JSP oder Servlet.
Der verwendete Codierungsstil wird auf dieser Seite nicht unterstützt.
------------------------------------------- ---- ---------------------------------------------- ---- -------------------
Ausnahme
„Dokument enthielt keine Daten“ in Netscape
Nr Daten-gerenderte (völlig leere) Seite im Microsoft Internet Explorer
Mögliche Gründe
Verwendung einer abgeleiteten Aktionsklasse ohne Implementierung der Methode perform() oderexecute(). Was in Struts1.0 implementiert ist, ist die perform()-Methode, und was in Struts1.1 implementiert ist, ist dieexecute()-Methode, aber Struts1.1 ist abwärtskompatibel mit der perform()-Methode. Wenn Sie jedoch Struts1.1 verwenden, um eine abgeleitete Aktionsklasse zu erstellen und die Methode „execute()“ zu implementieren, und diese in Struts1.0 ausführen, erhalten Sie in Netscape die Fehlermeldung „Dokument enthielt Nodata“ oder eine vollständig leere (kein HTML). was auch immer) Seite im Microsoft Internet Explorer gerendert. - ------------------------------------------------- - ---------------------------------
Ausnahme
ServletException: BeanUtils.populate
Lösung
Beim Hochladen von Dateien mit Struts wurde die Ausnahme javax.servlet.ServletException: BeanUtils.populate >My festgestellt ActionServlet verwendet keine Tool-Klassen wie BeanUtils. Später habe ich den Code sorgfältig überprüft und festgestellt, dass ich vergessen habe, enctype= „multipart/form-data“ in das Formular in der JSP-Datei einzufügen, sodass ich beim Schreiben des Programms darauf stoßen sollte Berücksichtigen Sie die Möglichkeit des Problems und denken Sie an etwas anderes als die Systemaufforderungsinformationen.
----------------------- --.--------------- --- -------------------------------- ---
1. Wenn nach dem Definieren der Aktion ein Name angegeben wird, müssen Sie ein FormBean mit demselben Namen definieren, um die Formularzuordnung durchzuführen. 2. Wenn nach dem Definieren der Aktion „Kein Eingabeattribut für den Zuordnungspfad …“ angezeigt wird, wird beim Absenden angezeigt page...“-Fehler, müssen Sie die umgeleitete Seite in ihrem Eingabeattribut definieren. 3. Wenn beim Einfügen neuer Daten der Fehler „Zeilenanzahl bei Stapelaktualisierung falsch:...“ auftritt, bedeutet dies, dass der in XXX angegebene Schlüsseltyp vorliegt .hbm.xml Es handelt sich um einen primitiven Typ (int, long), da dieser Typ automatisch einen Wert zuweist und dieser Wert das System häufig glauben lässt, dass der Datensatz bereits vorhanden ist. Die richtige Methode ist die Verwendung von java.lang.Integer oder java.lang.Long object.4 Wenn beim Einfügen von Daten der Fehler „Argumenttyp nicht übereinstimmend“ auftritt, verwenden Sie möglicherweise spezielle Objekte wie „Datum“, da Struts nicht automatisch von „String“ in „Datum“ konvertieren können Konvertieren Sie String in Date in Action. .5. In Hibernate ist die Methode iterator() viel schneller als die Methode list(). Wenn ein Fehler „gleiches Symbol erwartet“ auftritt, bedeutet dies, dass Ihr strtus-Tag ein anderes Tag oder eine andere Variable enthält , zum Beispiel:
Oder
/>
In diesem Fall...
--- ------- ------------------------------------------- ------- ------------------------------------------- ------- ------------
Fehler: Ausnahme im Thread „main“ org.hibernate.Exception.SQLGrammarException: JDBC-Batch-Update konnte nicht ausgeführt werden. Ursache und Lösung : Weil Hibernate Tools (oder Eclipse Das von Ihrem eigenen Datenbank-Explorer generierte *.hbn.xml-Tool) Attribute wie „katalog="***" (* stellt den Datenbanknamen dar) enthält. Löschen Sie einfach dieses Attribut
----- --------------------------------------------- ----- --------------------------------------------- ----- -------------------
Fehler: org.hibernate.ObjectDeletedException: Gelöschtes Objekt würde durch Kaskade erneut gespeichert (gelöschtes Objekt entfernen). aus Assoziationen)
Ursachen und Lösungen:
Methode 1 Löschen Sie die Kaskade auf der Set-Seite
Methode 2 Löschen Sie nach dem Auflösen der Assoziation
Methode 3 in Viele-zu-Eins-Kaskade hinzufügen, aber der Wert darf nicht none sein
Der letzte Ausweg:
Überprüfen Sie, ob hashCode equal die ID als einzige markierte Option verwendet. Es gibt kein Problem, wenn ich uuid verwende .hex; Aber wenn ich native verwende, funktioniert es nicht. Löschen!
------------------------------------------------------- -- ------------------------------------------------ -- --------------------------------
Frage: Ich habe heute Tomcat 5.5.12 verwendet und es herausgefunden Das ist ein sehr nützliches System, das nicht mehr verwendet werden kann. Bei wiederholten Tests wurde festgestellt, dass taglib nicht in die Seite eingebunden werden kann. Andernfalls wird die folgende Eingabeaufforderung angezeigt: HTTP Status 500 -type Exception reportMeldungsbeschreibung Der Server ist auf einen internen Fehler () gestoßen, der die Ausführung verhindert hat this request.Exceptionorg. apache.jasper.JasperException: /index.jsp(1,1) TLD „META-INF/tlds/struts-bean.tld“ kann nicht aus der JAR-Datei „file:*****/WEB“ gelesen werden -INF/lib/struts.jar“: Grund: Das JAR im lib-Ordner für das Projekt wurde aktualisiert und servlet.jar und jsp-api.jar wurden beim Veröffentlichen ebenfalls freigegeben. Lösung: Löschen Sie jsp-api.jar, um dieses Problem zu lösen. ----------------------- ------------- - ------------------------------------------------- - --------------------------
Fehler: java.lang.NullPointerException
Grund: Dao-Instanz gefunden, Dinge, die injiziert werden müssen, wie z. B. die Verwaltungsinstanz, werden nicht injiziert (allgemein als Nullzeiger-Ausnahme bekannt). Lösung: Zu diesem Zeitpunkt sollten Sie die Protokolldatei überprüfen. Der Standardwert ist die Protokolldatei des Anwendungsservers. Beispiel: Tomcat ist [Tomcat-Installationsverzeichnis]/logs; Sie werden folgende Eingabeaufforderungen finden: Wahrscheinlich: org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen der Bean mit dem in ServletContextresource definierten Namen „sf“ [/WEB-INF/applicationContext.xml ]: Initialisierung der Bean fehlgeschlagen; verschachtelte Ausnahme isorg.hibernate.HibernateException: konnte nicht über URL konfiguriert werden: file:src/hibernate.cfg.xmlorg.hibernate.HibernateException: konnte nicht über URL konfiguriert werden: file:src/hibernate.cfg.xml …………………….Verursacht durch: java. io.FileNotFoundException: srchibernate.cfg.xml kann sein: org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen der Bean mit dem Namen „sessionFactory“, definiert in der ServletContext-Ressource [/WEB -INF/applicationContext.xml]: Initialisierung der Bean fehlgeschlagen; verschachtelte Ausnahme isorg.hibernate.MappingException: Ressource: com/mcc/coupon/model/UserRole.hbm.xml nicht gefunden Dann wissen Sie, dass ein Fehler vorliegt beim Parsen der Konfigurationsdatei, die auf der Webseite nicht sichtbar ist. Darüber hinaus liegt ein Fehler in der Persistenzzuordnungsdatei vor, der dazu führt, dass sie nicht analysiert wird und die von Ihnen benötigte Funktion nicht verwendet werden kann.
------------------------------------------- ---- ---------------------------------------------- ---- ----------------------------------
Fehler: StandardWrapperValve[action] : Servlet.service() für die Servlet-Aktion hat eine Ausnahme ausgelöst
javax.servlet.jsp.JspException: Zuordnung für Aktion /settlementTypeManage kann nicht abgerufen werden
Oder: Geben Sie eine Statusberichtsmeldung ein. Servlet-Aktion ist nicht verfügbar. Beschreibung. Die angeforderte Ressource (Servlet-Aktion ist nicht verfügbar) ist nicht verfügbar.
Grund: Wie oben
--------------------------------- -------------------------------------------------- -- ---------------------------------------------
Fehler StandardWrapperValve[jsp]: Servlet.service() für Servlet-JSP löste Ausnahmejava.lang.ClassNotFoundException aus: org.apache.struts.taglib.bean.CookieTei-Schnittstellenfehler, spezifische Beschreibung:
org.apache. jasper.JasperException: TagExtraInfo-Klasse konnte nicht geladen oder instanziiert werden: org.apache.struts.taglib.bean.CookieTei
Ursache und Lösung: