[Tutorial] Fehlermeldungen von Bukkit interpretieren- Für Techniker und Developer

Dieses Thema im Forum "Tutorials" wurde erstellt von DASPOT, 27. Januar 2013.

  1. DASPOT
    Offline

    DASPOT Moderator

    Registriert seit:
    1. November 2011
    Beiträge:
    1.445
    Ort:
    minecraftnews.de
    Minecraft:
    DASPOOT
    Tutorial wird überarbeitet!! Ihr habt noch Fehlercode von Fehlern bei euch auf dem Server! Schickt ihn mir, dann kann ich ihn aufnehmen!

    Hallo

    Mir ist aufgefallen, dass einige Leute Probleme mit ihrem Server haben, aber nicht wissen, was das Problem ist, da
    sie Die Fehlermeldung nicht interpretieren können. Für diese Leute ist dieses kleine Tutorial gedacht.


    Auch ist dieses Tutorial für Plugin Developer gedacht, die ihre eigenen Plugins schreiben, beim Testen
    eine Fehlermeldung bekommen und dann in Panik ausbrechen, weil sie nicht wissen, wie sie das Problem beheben sollen.


    In diesem Tutorial werden Fehlermeldungen bei Bukkit behandelt!

    Beispiel 1:

    Zuerst einmal zeige ich euch eine Beispielfehlermeldung, die beim Start meines Servers mit dem Testplugin gekommen ist.
    Das wichtige ist gelb markiert. Der Rest ist eher uninteressant.

    [​IMG]

    Wie man in der ersten Zeile sehen kann, kann der Server "EasyTeleport.jar" nicht laden. Hier haben wir schon mal den Namen des Plugins.
    Für Serverbesitzer ist das das einzig wichtige. Lösung des Problems für Serverbesitzer: Plugin updaten.


    Jetzt schauen wir uns die Fehlermeldung nochmal genauer an, damit man als Plugin dev sieht, wo der Fehler ist. Als nächstes steht dort,
    dass der Server das Plugin aufgrund eines Syntax errors nicht laden. Kann "insert "}" to complete ClassBody" heißt also, dass wir ein "}"
    im Plugincode vergessen haben. Wo wir dieses vergessen haben wird weiter unten gezeigt. Normalerweise steht der Fehler immer bei: "Caused by:",
    welches ich auch markiert habe. Da steht jetzt nochmal das gleiche wie oben mit der gleichen Bedeutung. "main.EasyTeleport" ist der Pfad zur Fehlerhaften Klasse.
    Also: Package: main, Klasse: EasyTeleport. "EasyTeleport.java:74" Zeigt nochmal die Klasse und die Zeile, in der sich der Fehler befindet, also in diesem Fall
    Zeile 74.


    Also öffnen wir jetzt unser Programm, mit dem wir das Plugin geschrieben haben und gehen dort in die in der Fehlermeldung angegebene Klasse und suchen dann
    unsere fehlerhafte Zeile, die ja ebenfalls im Code steht.


    Wenn ihr keine Zeilenangaben aktiviert habt, könnt ihr si wie folgt aktivieren:


    Eclipse:


    Window -> Preferences -> General -> Editors -> Text-Editors -> Haken bei "Show line numbers" setzen.


    NetBeans:


    View -> Show Line Numbers


    Ich hab jetzt mal in Eclipse Die Klasse und Zeile aufgerufen:

    [​IMG]

    Und den Fehler behoben:

    [​IMG]

    Beispiel 2:

    Eine weitere Mögliche Fehlermeldung:

    [​IMG]

    Hier gibt es wie man sieht ein Problem mit der plugin.yml. Als Serverbesitzer/Techniker kann man da auch eher wenig machen. Wie man weiter unten sehen kann, fehlt bei mir
    die plugin.yml. Dies lässt sich ganz einfach beheben. Brauche ich glaub ich nicht weiter erläutern.

    Beispiel 3:

    Als drittes hab ich eine Fehlermeldung, die gekommen ist, nachdem ich einen Command eingegeben habe:

    [​IMG]

    Wie man sieht, handelt es sich hier um den Command 'port' des Plugins EasyTeleport version 1.0. Auch hier muss man als Techniker auf ein update des Plugins warten.


    Für die Pluginentwickler liegt die Erklärung des Fehlers weiter unten. Hier haben wir wieder "Caused by:", welches uns wie gesagt den Grund des Fehlers zeigt. In diesem kann man sehen, dass
    es sich um einen Syntax error bei "!=" handelt, da "!" für das Argument "null" undefiniert ist. Weiter unten sehen wir wieder den Pfad zum Fehler:
    "main.EasyTeleport.onCommand(EasyTeleport.java:46)". Der Fehler ist also im Package "main", dort in der Klasse "EasyTeleport" in der Methode "onCommand".
    In der Klammer wird dann nochmal die fehlerhafte Zeile erwähnt. Hier Zeile 46.


    jetzt rufen wir wieder unser Plugin im Jeweiligen Programm auf und gehen in die erwähnte Klasse zur angegebenen Zeile:

    [​IMG]

    Hier sieht man genau den Fehler, den die Konsole angegeben hat. Dieses habe ich auch behoben:

    [​IMG]

    Ich hoffe, ich habt das Prinzip verstanden und könnt nun auch andere Fehlermeldungen interpretieren. Alles was ich in den Fehlermeldungen nicht markiert habe, könnt ihr eigentlich ignorieren.
    Ihr müsst nur nach dem Pluginnamen,... suchen. Dies steht meist am Anfang. Falls ich irgendetwas falsches geschrieben habe, lasst es mich wissen, ich ändere es gerne. Und wenn etwas fehlt, ergänze ich es auch! Wenn euch dieses Tutorial gefallen hat, bewertet es doch!


    Ein kleiner Vorschlag: Wir könnten doch eine "Bibliothek" mit Fehlermeldungen und deren Behebung anlegen.


    Feedback ist erwünscht!


    Quelle: http://forums.bukkit.org/threads/ho...ubleshoot-your-own-plugins-by-yourself.32457/

    Ideen für weitere Tutorials sind gerne gesehen!
     
    #1
    1 Person gefällt das.
  2. Also von der Grundidee gut, aber
    1. Stacktrace ist einfach und jeder mit einwenig IQ kann sehen, welches Plugin den Fehler verursacht.
    2. Deine drei Beispiele sind leider grobe Fehler die bei der Compilierungen des Plugins auftreten, da sollte ein Programmierer stutzig werden, vorallem wenn er mit IDE arbeitet.
    3. Streichen des unwichtigen teils der Bilder wäre glaube ich besser gewesen.

    Naja schönes Tutorial sonst.
     
    #2
  3. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Eclipse zeigt nach dem Kompilieren immer "JAR created with warnings" an, falls man (Schönheits-)Fehler im Plugin gemacht hat.
    Ich empfehle grundsätzlich, die von Eclipse mit einem gelben Symbol versehenen Klassen in der Übersicht durchzugehen und nach gelb markierten Stellen suchen, um diese anschließend ausbessern zu könnern. So lassen sich auch von Anfang an solche Fehler vermeiden. :)
     
    #3
  4. DASPOT
    Offline

    DASPOT Moderator

    Registriert seit:
    1. November 2011
    Beiträge:
    1.445
    Ort:
    minecraftnews.de
    Minecraft:
    DASPOOT
    Danke für das Feedback. Ich habe solche einfachen Fehler genommen, weil es mir nur um das Prinzip ging, und das ist ja immer gleich. Es gibt mehr als genug Leute, die nicht wissen, was man mit diesen Fehlermeldungen genau anfangen soll und suchen Wild im ganzen Code,... Das ist mir aufgefallen, sonst wäre ich ja garnicht auf die Tutorialidee gekommen. Und wie gesagt, es ging und Prinzip. Deshalb habe ich auch so offensichtliche Fehler genommen, damit es auch jeder versteht, und weil mir auf die schnelle keine anderen Fehler eingefallen sind.
     
    #4
  5. Thomas
    Offline

    Thomas

    Registriert seit:
    14. Juli 2011
    Beiträge:
    644
    Ich finde, dass DASSPOT eine Tolle Idee hatte. Viele können einfach keine Fehlermeldungen lesen, weil sie kein Plan von Servern haben oder Java nur bei Video (oder noch schlimmer bei CopyPaste) gelernt haben.

    :dia: von mir!
     
    #5
  6. DASPOT
    Offline

    DASPOT Moderator

    Registriert seit:
    1. November 2011
    Beiträge:
    1.445
    Ort:
    minecraftnews.de
    Minecraft:
    DASPOOT
    Ich habe einige Bewertungen bekommen, in denen auch erwähnt wurde, dass ich das Tutorial erweitern soll. Es wäre aber praktisch zu wissen, was ich verbessern soll ;). Bitte schreibt es doch hier rein!

    Danke
     
    #6
  7. DaRuS
    Offline

    DaRuS

    Registriert seit:
    10. Februar 2013
    Beiträge:
    5
    Ort:
    Iwo in BW
    Gutes Tutorial :)
     
    #7
  8. DASPOT
    Offline

    DASPOT Moderator

    Registriert seit:
    1. November 2011
    Beiträge:
    1.445
    Ort:
    minecraftnews.de
    Minecraft:
    DASPOOT
    Tutorial wird komplett überarbeitet, falls jemand mithelfen will und vorschläge für Fehler von Bukkit allgemein hat, die man mit anführen kann, bitte bescheid sagen! Werden auch Fehler, die nicht durch Plugins verursacht sind aufgenommen!
     
    #8