2010-12-14 6 views
4

Ich habe ein Projekt namens myproject2 in meiner Eclipse IDE. Ich habe einen Tomcat-Anwendungsserver und kann dort die Ressource myproject2 hinzufügen (es ist ein Spring MVC-Projekt).Eclipse: Fehler beim Starten der statischen Ressourcen java.lang.IllegalArgumentException

Nun habe ich das myproject2 in Eclipse geschlossen, myproject2 aus den Tomcat-Ressourcen entfernt und eine neue Subversion-Checkout mit Projektname: myproject3 gemacht.

Neustart der IDE Ich möchte myproject3 auf den Tomcat-Server setzen, damit dieser bereitgestellt werden kann. Aber alles, was verfügbar ist, ist myproject2 zu wählen. Also wähle ich es aus. Ich kann http://localhost:8080/myproject2/ zugreifen, aber ich bekomme diese Warnung und dienen in der Konsole:

14.12.2010 11:43:11 org.apache.catalina.startup.HostConfig deployDescriptor 
WARNING: A docBase C:\Spring\apache-tomcat-6.0.29-windows-x86\apache-tomcat-6.0.29\webapps\myproject2 inside the host appBase has been specified, and will be ignored 
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext resourcesStart 
SERVE: Error starting static Resources 
java.lang.IllegalArgumentException: Document base C:\Spring\apache-tomcat-6.0.29-windows-x86\apache-tomcat-6.0.29\webapps\myproject3 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:4249) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4418) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) 
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) 
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563) 
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) 
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) 
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) 
at org.apache.catalina.core.StandardService.start(StandardService.java:519) 
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:581) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext start 
SERVE: Error in resourceStart() 
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext start 
SERVE: Error getConfigured 
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext start 
SERVE: Context [/myproject3] startup failed due to previous errors 
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext stop 
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myproject3] has not been started 

Also, was hier los? Warum habe ich kein myproject3, um auszuwählen, was in Tomcat bereitgestellt werden soll?

Weiß jemand?

Mit freundlichen Grüßen.


Update:

.project (myproject2):

<projectDescription> 
    <name>myproject</name> 
    <comment>My-Project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment> 
    <projects/> 
    <buildSpec> 
     <buildCommand> 
      <name>org.eclipse.jdt.core.javabuilder</name> 
     </buildCommand> 
    </buildSpec> 
    <natures> 
     <nature>org.eclipse.jdt.core.javanature</nature> 
    </natures> 
</projectDescription> 

.project (myproject3)

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

Antwort

0

Ich suchte ein paar Tage danach, aber ich habe keine Lösung gefunden. Also habe ich alles neu installiert und es von einem neuen Projekt eingerichtet.

1

Sind Sie mit dem Eclipse WTP und Tomcat -Server-Integration zu Bereitstellen Ihrer App, oder erstellen Sie einen WAR und stellen ihn selbst auf Tomcat bereit?

Wenn Sie die Integration verwenden, können Sie versuchen, eine WAR-Datei zu erstellen und sie anschließend selbst bereitzustellen, um zu sehen, was passiert. Veröffentlichen Sie ein Update - ich werde danach weiterarbeiten.


Ich habe Ihre ursprüngliche Frage erneut gelesen. Vielleicht liegt das Problem an der Art und Weise, wie du myproject3 erstellt hast. Ich vermute, dass es nicht die erforderliche Projektnatur hat, um von Eclipse auf einem Server bereitgestellt zu werden. ("Projektnatur" ist ein Eclipse-Konzept; ein Projekt kann mehrere davon haben; verschiedene Teile von Eclipse überprüfen Projektnatur, um zu bestimmen, auf welchen Projekten sie reagieren können.) Sie sagten, Sie hätten den Code von Subversion ausgecheckt und das Projekt in einem erstellt Schritt. Das schafft nicht unbedingt den richtigen Projekttyp. Der J2EE-Implementierungsmechanismus von Eclipse ermöglicht Ihnen nur das Bereitstellen von Projekten mit einer bestimmten Projektnatur - ich denke, es ist "eclipse.common.project.facet.core.nature". Außerdem benötigt Ihr Projekt bestimmte Eclipse-Builder, um funktionsfähig zu sein. Ich denke "org.eclipse.wst.common.project.facet.core.builder" ist einer von ihnen.

In der .project-Datei im Stammverzeichnis Ihres Projekts werden die Typen und Builder konfiguriert. Sie sollten diese Dateien in Ihren beiden Projekten untersuchen.

F: Sind in Ihrem Eclipse-Arbeitsbereich myproject2/.project und myproject3/.project (neben dem Namen) signifikant anders? Veröffentlichen Sie die Unterschiede hier.

F: Enthält myproject2 in SVN die Datei .project?

Die Beantwortung dieser Fragen sollte Ihnen mehr sagen. Sie sollten die verschiedenen Optionen zum Auschecken und Erstellen eines Projekts in einem Schritt sorgfältig prüfen.

+0

Ich habe den ersten Weg mit WTP und die Tomcat-Server-Integration in Eclipse verwendet. Wie kann ich selbst eine WAR erstellen? Ich bin ein Neuling und ich habe nur den Integrations-WTP-Weg benutzt. – Tim

+0

Verwenden Sie die Exportfunktion. Probieren Sie Eclipse-Hilfe oder Google aus. Es ist nicht schwer. Und es ist gut, es selbst zu tun; Sie werden mehr erfahren. Ich werde später mit dir hier nachgehen. – Ladlestein

+0

Ich habe es getan. Ich habe das a myproject3.war. Dies habe ich in den Ordner webapps verschoben und starte Tomcat (in Eclipse) neu. Und dann habe ich den Ordner myproject3 in webapps, auf den ich über http: // locahost zugreifen kann: 8080/myproject3/ – Tim

1

Ich denke Ladlestein sicherlich auf dem richtigen Weg ist, aber ich kann ein bisschen mehr Kontext für dieses Problem in der Art und Weise hinzufügen, dass ich war in der Lage, es zu reproduzieren:

Ich habe eine ähnlichen Eclipse-(Indigo) Satz up, wobei ich ein Maven-Projekt habe und die Eclipse-WTP-Funktion zur Bereitstellung auf einem eingebetteten Tomcat 7-Server verwende. Alles funktioniert gut, wenn ich das Projekt als ein Maven-Projekt aus Eclipse importiere, aber mein Problem tritt auf, wenn ich eine mvn eclipse:clean und mvn eclipse:eclipse von der Befehlszeile ausführen. Dies erstellt natürlich die Eclipse .project Datei aber lässt es ohne einige scheinbar wichtig Naturen und buildCommands.

Ich beobachte eine .project Datei sehr ähnlich zu der fehlerhaften in der Frage (in myproject2) und in Eclipse selbst ist das Projekt nicht mehr, was Eclipse ein "Dynamic Web Module" nennt - daher nicht einsetzbar - noch ist es länger ein Maven-Projekt. Ich war in der Lage, dies zu beheben, wie folgt:

Zum einen machen es zu einem Maven-Projekt, indem Sie die folgenden auf die .project Datei hinzufügen (ich weiß nicht, ob es einen besseren Weg durch Eclipse ist selbst):

<buildSpec> 
    ... 
    ... 
    <buildCommand> 
     <name>org.eclipse.m2e.core.maven2Builder</name> 
    </buildCommand> 
</buildSpec> 

<natures> 
    ... 
    ... 
    <nature>org.eclipse.m2e.core.maven2Nature</nature> 
</natures> 

Jetzt können Sie sicherstellen, dass das Projekt auf dem neuesten Stand ist, indem Sie mit der rechten Maustaste auf das Projekt klicken und Maven > Update Project Configuration... ausführen.

Als Nächstes können Sie das Projekt über Properties > Project Facets > Dynamic Web Module (Kontrollkästchen) bereitstellen. Hier ist ein mehr complete set of instructions for making your project a Dynamic Web Module.

Am Ende Ihrer .project Datei wie folgt aussehen soll:

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>project1</name> 
    <comment>NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment> 
    <projects> 
    </projects> 
    <buildSpec> 
     <buildCommand> 
      <name>org.eclipse.wst.common.project.facet.core.builder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.jdt.core.javabuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.m2e.core.maven2Builder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.wst.validation.validationbuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
    </buildSpec> 
    <natures> 
     <nature>org.eclipse.jdt.core.javanature</nature> 
     <nature>org.eclipse.wst.common.project.facet.core.nature</nature> 
     <nature>org.eclipse.m2e.core.maven2Nature</nature> 
     <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> 
    </natures> 
</projectDescription> 
0

ich ähnliches Problem würde (mit Eclipse & tomcat7 & WTP) & ich es manuell gelöst eclipse_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmpX\server.xml Bearbeitung wo tmpx sind temporäre Ordner der Caches Projekte veröffentlichen Einstellungen.

0

Dieses Problem wird nur durch Erstellen eines neuen Projekts gelöst.

0

Ich würde ähnliches Problem (mit Eklipse & tomcat7 & WTP). es gelöst durch (Kommentierung out) die folgende Zeile aus % CATALINA_HOME%/conf/server.xml Entfernen

Context docBase = "[CATALINA_HOME] \ \\ webapps ROOT" path = "" nachladbaren = "false"/>

0

Lösen Sie mein Problem. Ich kopiere einfach die Projektdatei von einem anderen ausführbaren Webprojekt und ändere das Projektnamenattribut

1

Das passiert, weil das Projekt vor der Verwendung dieses Servers ausgeführt wurde oder mit diesem Server konfiguriert wurde. Daher wird der Pfad in einem Ordner in Ihrem Tomcat-Verzeichnis gespeichert.

In Sie tomcat Ordner, gehen \ Catalina \ localhost \

In diesem Ordner conf, löschen Sie die XML-Datei, die für Ihr Projekt entspricht.

Alternativ entfernen Sie den Server und fügen Sie ihn erneut hinzu.

-1

Problem gelöst !! Löschen Sie einfach Ihre Server-Instanz und starten Sie mit einem neuen Server.

0

Ich hatte das gleiche Problem. Was für einen Trick für mich, in der Übersicht des Servers (Doppelklick auf Ihren Server im Server-Tab) musste ich den deploy-Pfad zu "MY_SERVER_PATH \ webapps" .Hope wird es hilfreich sein.

Danke :-)

0

die Server-Instanz von meinem IDE entfernen und hinzufügen es mein Problem wieder gelöst.

0

In meiner Situation habe ich die folgenden zwei Schritte, und der Fehler ging weg:

1 - richtiges Projekt klicken Sie auf> Eigenschaften> Projekt Facetten> Laufzeit Ich entfernte den Web-Server dann angewandt. Neustart der IDE

Ungeschickt für mich gearbeitet - angewendet wieder hinzugefügt, um es dann

2.

Verwandte Themen