Announcement

Collapse
No announcement yet.

Probleme mit dem Klassenpfad nach dem Deployment

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit dem Klassenpfad nach dem Deployment

    Ich habe leider noch ein anderes Problem:
    ich habe meinen Client fertiggestellt und wollte ihn deployen. Leider wirft tomcat einen Fehler: "import clientmainclass cannot be resolved". Er findet die Klassen nicht! Ich habe für die Modellogik reine java-Klassen (keine Servlets) benutzt. Auf diese habe ich dann aus der JSP referenziert. Das funktionierte in der IDE (Netbeans 6) wunderbar. Z.B. die Hauptklasse heißt "ClientMainClass" und liegt in dem Package "clientmainclass". Aus der JSP referenziere ich drauf mit import clientmainclass.ClientMainClass; Die Struktur meiner Webapp ist ganz normal. In dem Anwendungsordner liegt die JSP, die von der WEB.xml als Startobjekt benannt wird. Die Struktur der app sieht so aus:

    Webapp-Anwendungsvz.
    ...|.....................|
    ...+Ordner1........-client.jsp
    ...|
    ...+Ordner2
    ...|
    ...+etc.
    ...|
    ...+WEB-INF
    ..... | ........ |
    ......+lib.....+classes
    .......................|
    ......................+clientmainclass
    ...................................|
    .................................. -ClientMainClass.class
    ...................................-etc.class
    Meines Wissens ist der Klassenpfad bei Tomcat so , dass er nach den referenzierten Klassen eben ab dem Vz. classes sucht. D.h. der Pfad sollte doch eigentlich stimmen oder? In der IDE hat Netbeans die Klassenpfade verwaltet und da passte es dann auch. Ich habe danch mit ant eine .war erzeugt und auf dem tomcat 5.5 deployed. Das kann doch nicht an unterschiedlichen Tomcat-Versionen liegen oder? (netbeans bringt tomcat 6 mit). Was kann denn da nicht stimmen, dass tomcat die Klassen der Anwendung nicht findet?
    Danke
    Albrecht

  • #2
    Hi,

    Liegt Dein classes-Verzeichnis wirklich direkt unter WEB-INF ?
    Wenn Du Netbeans verwendest, so generiert Netbeans Dir Dein war-File (im dist Verzeichnis Deines Projektes). Benutze dieses.
    MfG

    Comment


    • #3
      Hi lulog,
      jep, mein classes-Vz. liegt direkt unter WEB-INF. NetBeans erzeugt derzeit kein war-file. Deshalb habe ich es mit ant gemacht. Erst danach hatte ich ein dist-vz. mit war drin. Evtl. ist es eine Einstellungssache in Netbeans, dass default-mäßig kein war angelegt wird un man erst eine Einstellung tätigen muss? Weißt du, wo ich da schauen muss? In Project Properties unter packaging steht der Name der war-Datei, die generiert werden soll, aber es wird keine erstellt.
      Gruß
      Albrecht

      Comment


      • #4
        Hi,

        Ich verwende Netbean 6.
        Wenn Du ein Web-Projekt anlegst, dann hast Du eigentlich alles konfiguriert wie Du es brauchst.
        Wenn Du dann ein "Clean and Build" ausführst, wird das war-File ins dist-Verzeichnis geschrieben.

        Einstellungen kannst Du unter den Eigenschaften des Projektes vornehmen (Build\Packaging).
        MfG

        Comment


        • #5
          Das ging. Allerdings bekomme ich mit der .war trotzdem den selben Fehler: "The import clientmainclass cannot be resolved". Wobei clientmainclass das package unter classes ist. Das komische ist, dass es, wenn es aus der IDE gestartet wird, funktioniert. Evtl. liegt es an den unterschiedlichen Tomcat-Versionen? Netbeans nutzt Tomcat 6 und ich möchte die Anwendung unter Tomcat 5.5.12 deployen? Aber die Struktur kann sich von 5.5 zu 6 doch nicht so geändert haben?

          Comment


          • #6
            Hi,

            die Struktur hat sich nicht geändert.
            Hat Dein Tomcat irgendwelche LOG-Informationen geschrieben ?
            Mit welchen JDK hast Du Deine Klassen kompiliert ? Mit welchen JDK läuft Dein Tomcat?
            MfG

            Comment


            • #7
              Habs inzwischen rausgefunden. War tatsächlich ein Versionsproblem! In der Entwicklungsumgebung habe ich Java 1.6 und Tomcat 6 benutzt. Auf dem Server, auf dem die Anwendung laufen sollte, ist Java 1.5 und tomcat 5.5 installiert.Nachdem ich auf einem anderen rechner testweise Java 1.6 und tomcat 6 installiert hatte und damit den client getsetet, lief alles wunderbar! Seltsam, dabei benutze ich gar keine Java 1.6-spezifischen Klassen. Egal. jetzt gehts.
              Bis dann.
              Albrecht

              Comment

              Working...
              X