webentwicklung-frage-antwort-db.com.de

Eine Webapp von Eclipse kann nicht auf dem Server ausgeführt werden

Wenn Sie mein WebApp-Projekt in Eclipse ausführen, wird es meistens korrekt ausgeführt. Wenn der Server jedoch versehentlich gestoppt wird, töte ich ihn in der "Konsole" -Ansicht anstelle von "Stop" -Server von "Server" -Ansicht . Beim Ausführen eines sauberen Projekts bekomme ich dies

Java.lang.NullPointerException
at org.Eclipse.wst.common.componentcore.internal.util.VirtualReferenceUtilities.getDefaultProjectArchiveName(VirtualReferenceUtilities.Java:81)
at org.Eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getJavaClasspathReferences(J2EEModuleVirtualComponent.Java:332)
at org.Eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getNonManifestRefs(J2EEModuleVirtualComponent.Java:236)
at org.Eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.Java:160)
at org.Eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.Java:208)
at org.Eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.Java:201)
at org.Eclipse.jst.common.internal.modulecore.SingleRootUtil.hasConsumableReferences(SingleRootUtil.Java:217)
at org.Eclipse.jst.common.internal.modulecore.SingleRootUtil.validateSingleRoot(SingleRootUtil.Java:165)
at org.Eclipse.jst.common.internal.modulecore.SingleRootUtil.isSingleRoot(SingleRootUtil.Java:93)
at org.Eclipse.jst.common.internal.modulecore.SingleRootExportParticipant.canOptimize(SingleRootExportParticipant.Java:84)
at org.Eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.canOptimize(FlatVirtualComponent.Java:136)
at org.Eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.cacheResources(FlatVirtualComponent.Java:118)
at org.Eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.fetchResources(FlatVirtualComponent.Java:101)
at org.Eclipse.wst.web.internal.deployables.FlatComponentDeployable.members(FlatComponentDeployable.Java:147)
at org.Eclipse.wst.server.core.internal.ModulePublishInfo.hasDelta(ModulePublishInfo.Java:418)
at org.Eclipse.wst.server.core.internal.ServerPublishInfo.hasDelta(ServerPublishInfo.Java:443)
at org.Eclipse.wst.server.core.internal.Server.hasPublishedResourceDelta(Server.Java:1539)
at org.Eclipse.wst.server.core.internal.Server$ResourceChangeJob$1.visit(Server.Java:214)
at org.Eclipse.wst.server.core.internal.Server.visitModule(Server.Java:2929)
at org.Eclipse.wst.server.core.internal.Server.visit(Server.Java:2913)
at org.Eclipse.wst.server.core.internal.Server$ResourceChangeJob.run(Server.Java:225)
at org.Eclipse.core.internal.jobs.Worker.run(Worker.Java:54)

Und beim Starten bekomme ich das

SEVERE: Error starting static Resources
Java.lang.IllegalArgumentException: Document base D:\workspace\.metadata\.plugins\org.Eclipse.wst.server.core\tmp0\wtpwebapps\Webapp does not exist or is not a readable directory
    at org.Apache.naming.resources.FileDirContext.setDocBase(FileDirContext.Java:142)
    at org.Apache.catalina.core.StandardContext.resourcesStart(StandardContext.Java:4319)
    at org.Apache.catalina.core.StandardContext.start(StandardContext.Java:4488)
    at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1053)
    at org.Apache.catalina.core.StandardHost.start(StandardHost.Java:840)
    at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1053)
    at org.Apache.catalina.core.StandardEngine.start(StandardEngine.Java:463)

Bitte helfen Sie, sich davon zu erholen.

27
Ram

Ich habe aufgehört, diese Methode zur Ausführung meiner Webapps zu verwenden. Ich benutze stattdessen mvn Tomcat:run. Viel einfacher. Ich weiß nicht, wie ich debuggen kann.

0
Ram

Ich hatte eine schwere Zeit, um es zum Laufen zu bringen, aber dank "Alexander Pogrebnyak" (siehe Bereitstellen einer Kriegsdatei in einem WTP (Eclipse) Tomcat-Server ) konnte ich Eclipse Web Projects mit Maven über m2e zusammenarbeiten lassen:

Bevor ich anfange, muss ich sagen, dass ich ein sehr misstrauischer Mann bin. Deshalb säubere ich zunächst alle meine Projekte mithilfe des Menüs "Eclipse> Project> Clean ..." (ohne die Option "Build sofort erstellen"). Ich habe auch die Option "Eclipse> Projekt> Automatisch erstellen" nicht aktiviert.

Übrigens, ich nehme an, dass Sie Ihr m2e-Plugin bereits installiert haben, oder was ich sagen möchte, hat keine Bedeutung ...

Nun, fangen wir an:

Bye bye Serverkonfiguration:

1) Wenn Sie ein Projekt in einer früheren Serverkonfiguration haben, entfernen Sie es (klicken Sie mit der rechten Maustaste auf den Server und wählen Sie die Option "Hinzufügen und Entfernen").

2) Bereinigen Sie das Server-Arbeitsverzeichnis (klicken Sie mit der rechten Maustaste auf den Server und wählen Sie "Tomcat Server-Arbeitsverzeichnis").

3) Bereinigen Sie die kompilierten "Reste" (klicken Sie mit der rechten Maustaste auf den Server und wählen Sie "Bereinigen").

4) Entfernen Sie Ihre Serverkonfiguration von der Registerkarte "Server"

5) Löschen Sie Ihr Projekt/Ordner "Server" vollständig (angezeigt in der Registerkarte "Projekt-Explorer").

6) BONUS: Ich entferne auch meine Server-Laufzeitumgebung ("Eclipse> Fenster> Voreinstellungen> Server> Laufzeitumgebungen").

Zweitens "Maven clean" (wenn Ihr Webprojekt eine "Maven-Natur" hat): 

1) Klicken Sie mit der rechten Maustaste auf Ihr Webprojekt

2) "Popup-Menü> Ausführen als> Maven-Reinigung"

Dadurch sollte Ihr Zielordner gelöscht werden

Drittens, Instal m2e WTP-Integration (ja! Es kommt nicht als "Standard". Einen ganzen Tag, um es herauszufinden):

1) Öffnen Sie die Option "Discovery" für Maven (Eclipse> Windows> Einstellungen> Maven> Discovery).

2) Klicken Sie auf die Schaltfläche "Katalog öffnen" (ein Fenster "m2e Marketplace" sollte erscheinen)

3) Scrollen Sie nach unten, bis Sie die Option "WTP-Integration" finden, und prüfen Sie diese!

4) Klicken Sie auf "Fertig stellen".

5) Ein "Plugin-Bildschirm" erscheint. "Next", "Next", "Agree", bla, bla, bla ...

Viertens, lass Eclipse laufen und starte es erneut:

1) Wenn Sie nicht gefragt werden, ob Sie Eclipse wiederherstellen möchten (ich glaube kaum zu glauben, dass Sie dies nicht tun werden), starten Sie es selbst neu!

Fünftens, Maven Wiedereingliederung:

1) Fügen Sie dem Projekt Maven nature hinzu (Klicken Sie mit der rechten Maustaste auf Ihr Webprojekt, "Popup-Menü> Konfigurieren> In Maven-Projekt konvertieren").

2) Aktualisieren Sie Ihre Maven-Konfiguration (Ja, ja, verdächtig, ich weiß). Klicken Sie erneut mit der rechten Maustaste auf Ihr Webprojekt, und klicken Sie auf das Symbol "M" ("Popup-Menü> Maven> Projekt aktualisieren").

3) Führen Sie eine Maven-Installation aus (Klicken Sie mit der rechten Maustaste auf Ihr Webprojekt, "Popup-Menü> Ausführen als> Maven-Installation").

4) Erstelle dein Projekt ("Eclipse> Project> Build All")

Sechstens, mach alles für die Arbeit:

1) Stellen Sie Ihre Webanwendung bereit und führen Sie sie aus (Klicken Sie mit der rechten Maustaste auf Ihr Webprojekt, "Popup-Menü> Ausführen als> Auf Server ausführen").

2) Sie werden aufgefordert, eine andere Serverkonfiguration zu erstellen. Das Projekt/Ordner "Server" wird erneut erstellt. Dies ist jedoch der Fall.

Das ist es!!! Ich muss zugeben, als ich den Server einmal ausgeführt habe, hat es nicht funktioniert, aber dieses Mal (ich weiß nicht warum), konnten "Log4J" -Bibliotheken nicht gefunden werden. Nach einem "project clean" + "maven clean" und einem "maven install" + "project build" wird eine weitere Nachricht angezeigt, die besagt, dass meine Servlet-Klasse nicht gefunden werden konnte. Wieder einmal habe ich ein "project clean" + "maven clean" und ein "maven install" + "project build" und "voila" ausgeführt !!! Es hat funktioniert (und deshalb bin ich so misstrauisch).

Ich begann, mir Sorgen zu machen mit diesem neuen Juno + m2e Double ... Ich hatte noch nie Probleme mit Indigo oder Ganymede ... Aber ich glaube, ich kann Eclipse wieder vertrauen (kann ich?)

39
Alejo Ceballos

Mach diese verrückten kosmischen Workarounds nicht !!

Das funktioniert gut:

Fügen Sie Ihrer ".project" -Datei (ausgeblendet) folgende Zeilen hinzu:

 <natures>
    <nature>org.Eclipse.jem.workbench.JavaEMFNature</nature>
    <nature>org.Eclipse.wst.common.modulecore.ModuleCoreNature</nature>
    <nature>org.Eclipse.jdt.core.javanature</nature>
    <nature>org.Eclipse.m2e.core.maven2Nature</nature>
    <nature>org.Eclipse.wst.common.project.facet.core.nature</nature>
    <nature>org.Eclipse.wst.jsdt.core.jsNature</nature>
  </natures>

Genießen !

Warum? Wenn Sie dieses nicht existierende Verzeichnis überprüfen, ist "../.metadata/blah/blah/tmp0/wtpwebapps/YOURPROJECT/" LEER: dann erstellen Sie keine Erstellung des WARs. !!! Da das Plugin Maven nicht versteht, hat er es nicht verstanden!

Ich fand dies, nachdem ich zwei .project-Dateien aus verschiedenen Projekten zum Bereitstellen/Nicht-Bereitstellen von Projekten verglichen hatte.

Hoffnung hat geholfen!

7
user1995400

Ich habe genau das gleiche Problem und die gleiche Ausnahme, aber ich habe das Problem gelöst, indem ich den Pakettyp "Krieg" wie "Krieg" spezifizierte. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie "Maven> Projektkonfiguration aktualisieren" zum Tomcat Server, das war's!

3
Bob Yang

Ich habe den "Problemordner" gelöscht .metadata.plugins\org.Eclipse.wst.server.core \tmp0\ und es funktioniert jetzt :)

Ich war ziemlich verwirrt über das Problem, da ich vor dem Auftreten eines Problems noch eine andere Abhängigkeit vom Glas hatte. Ich verwende Eclipse Luna, das bereits M2E-Integration hatte und keine der oben genannten Lösungen für mich funktionierte.

Das Problem begann mit dem Hinzufügen einer neuen Jar-Abhängigkeit zu einem Maven-Kriegsprojekt, aber es funktionierte immer noch gut, als diese im Pom auskommentiert wurde. Zum Glück konnte ich beide Projekte miteinander vergleichen und letztendlich war das Problem mit einer fehlenden Projektfacette im neuen jar-Projekt verbunden: Utility Module.

  1. Rechte Taste am Projekt: Projektfacetten
  2. Überprüfen Sie "Utility Module" und speichern Sie
  3. Entfernen Sie die Anwendung von Tomcat und veröffentlichen Sie sie erneut.
1
Luis Diaz

Ich habe an diesem Problem gelitten, aber die Ursache war anders .. Das Problem ist aus wrong server name([Project Name] != [Server Name])..__ entstanden. Ich dachte, dass ich es durch Server wiederherstellen könnte.

Dieses Problem kann durch folgende Schritte gelöst werden:

  1. Server entfernen: Klicken Sie mit der rechten Maustaste auf [Severs] und entfernen Sie den Server.
  2. Server löschen: Klicken Sie mit der rechten Maustaste auf [Project Explorer] und löschen Sie den Server (den Sie erstellt haben).
  3. Projekt reinigen: menu[Project -> Clean]
  4. Server erstellen: Rechtsklick auf [Severs] und neuer Server.
  5. Bearbeiten Sie server.xml: Bearbeiten Sie server.xml für Ihren Webserver.
  6. Server hinzufügen: Klicken Sie mit der rechten Maustaste auf [Severs] und entfernen Sie den Server.
1
Halu Kim

Machen Sie einfach maven -> Aktualisieren Sie die Projektkonfiguration und bereinigen/erstellen Sie von Ihrem Eclipse aus. Projekt wird geladen.

1
arviarya

Habe alles ohne Glück versucht. Ich hatte gerade ein Projekt in meiner Eclipse. Beenden Sie Eclipse, benennen Sie das Eclipse-Verzeichnis um, entpacken Sie es erneut und starten Sie es in Eclipse neu. Es funktionierte.

Nein, es ist nicht effizient.

0
Mustafa

In meinem Fall war es genug zu kopieren (aus Arbeitsprojekt):

  1. .die Einstellungen
  2. .classpath
  3. .projekte
0
SkorpEN

Ich habe das gleiche Problem festgestellt, und das Bereinigen und Wiederherstellen des Servers hilft nicht. Als ich jedoch ein anderes Projekt implementierte, konnte es erfolgreich gestartet werden. Nach langem Vergleich fand ich Unterschiede in den .project-Dateien. Also kopiere ich den Inhalt der .project-Datei des Arbeitsprojekts in das Problem, füge es dem Server hinzu und es funktioniert. Nachfolgend finden Sie den Inhalt der .project-Datei, die funktioniert. Beachten Sie, dass Sie den Namen des Projekts entsprechend ändern müssen:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Project Name</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
    <buildCommand>
        <name>org.Eclipse.wst.jsdt.core.javascriptValidator</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.Eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.Eclipse.wst.common.project.facet.core.builder</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.Eclipse.wst.validation.validationbuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>
<natures>
    <nature>org.Eclipse.jem.workbench.JavaEMFNature</nature>
    <nature>org.Eclipse.wst.common.modulecore.ModuleCoreNature</nature>
    <nature>org.Eclipse.wst.common.project.facet.core.nature</nature>
    <nature>org.Eclipse.jdt.core.javanature</nature>
    <nature>org.Eclipse.wst.jsdt.core.jsNature</nature>
</natures>

0
gkl

Dieses Problem wird möglicherweise dadurch verursacht, dass Ihr lokales Projekt nicht mit Ihrem Code-Repository synchronisiert ist .. __ Ich würde vorschlagen, Ihr Projekt zu aktualisieren/zu synchronisieren. 

0
Marcin Wasiluk

Schritte, die ich befolgt habe und zu 100% funktionieren werde:

  1. Bereinigen Sie Ihren Server und Ihr Server-Arbeitsverzeichnis, indem Sie mit der rechten Maustaste auf den Server klicken
  2. Löschen Sie den Serverordner aus Ihrem Projekt-Explorer-Fenster
  3. Entfernen Sie den Server aus der Laufzeitumgebung, dh aus Eclipse -> Fenster -> Voreinstellungen -> Server -> Laufzeitumgebungen
  4. Schließen Sie Eclipse und beginnen Sie erneut
  5. Führen Sie die Datei erneut auf dem Server aus, und konfigurieren Sie den Apache-Server erneut
  6. Das Problem ist gelöst
0
Sahil
Check this version:

<web-app version="**2.5**" xmlns="http://Java.Sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee 
    http://Java.Sun.com/xml/ns/javaee/web-app_**2_5**.xsd" metadata-complete="true">

and 

org.Eclipse.wst.common.project.facet.core.xml

<installed facet="jst.web" version="**2.5**"/>

It can be incompatible with the chosen server. In my case when I tried to upgrade 3.0 Tomcat 6.0 stopped working so I had to revert back to 2.5


so upgrade your server to a highter version or downgrade the web.xml version and run maven --> update project and try again
0
Cynthia Elliot

Überprüfen Sie Tomcat-Dokument für Dokumentbasis xyz ist nicht vorhanden oder es ist kein lesbares Verzeichnis:

Dokumentbasis existiert nicht oder ist kein lesbares Verzeichnis Die URL Durch den Parameter war angegeben, muss ein Verzeichnis in diesem Verzeichnis angegeben werden Server, der die "entpackte" Version einer Webanwendung enthält, oder Die absolute URL einer WAR-Datei (Web Application Archive), die .__ enthält. Diese Anwendung. Korrigieren Sie den durch den Parameter war angegebenen Wert.

Können Sie manuell "Bereinigen ..." und dann "Veröffentlichen" (über das Kontextmenü von Tomcat in der Serveransicht) ausführen, nachdem das Bereinigungsprojekt abgeschlossen ist?

0
padis