2010-12-14 63 views
4

J'ai un projet appelé myproject2 dans mon IDE Eclipse. J'ai un serveur d'application Tomcat et je peux y ajouter la ressource myproject2 (c'est un projet Spring MVC).Eclipse: Erreur lors du démarrage des ressources statiques java.lang.IllegalArgumentException

Maintenant, j'ai fermé myproject2 dans Eclipse, supprimé myproject2 des ressources Tomcat et faire une nouvelle extraction de Subversion avec projectname: myproject3. Redémarrage de l'IDE Je souhaite définir myproject3 sur le serveur Tomcat afin que ce dernier soit déployé. Mais tout ce qui est disponible est myproject2 à choisir. Donc je le choisis. Je peux accéder à http://localhost:8080/myproject2/ mais je reçois cet avertissement et servir dans la console:

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 

Alors quel est le problème ici? Pourquoi n'ai-je pas un myproject3 pour choisir ce qui devrait être déployé dans Tomcat?

Quelqu'un sait-il?

Cordialement.


Mise à jour:

.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> 

Répondre

0

J'ai cherché quelques jours pour cela, mais je n'ai pas trouvé de solution. J'ai donc tout réinstallé et mis en place à partir d'un nouveau projet.

1

Utilisez-vous l'Eclipse WTP et Tomcat -server intégration à déployez-vous votre application ou créez-vous un fichier WAR et le déployez-vous dans Tomcat? Si vous utilisez l'intégration, vous pouvez essayer de créer un fichier WAR et de le déployer vous-même, ensuite, pour voir ce qui se passe. Publier une mise à jour - Je suivrai après.


J'ai relu votre question originale. Peut-être que le problème est lié à la façon dont vous avez créé myproject3. Je suspecte ne pas avoir la nature de projet nécessaire pour être déployé sur un serveur par Eclipse. ("Project nature" est un concept Eclipse, un projet peut en avoir plusieurs, différentes parties d'Eclipse vérifient les natures de projet pour déterminer sur quels projets ils peuvent agir.) Vous avez dit avoir extrait le code de Subversion et créé le projet en un étape. Cela ne crée pas nécessairement le bon type de projet. Le mécanisme de déploiement J2EE d'Eclipse vous permet uniquement de déployer des projets avec une certaine nature de projet - je pense que c'est "eclipse.common.project.facet.core.nature". En outre, votre projet a besoin de certains constructeurs Eclipse pour être viable; Je pense que "org.eclipse.wst.common.project.facet.core.builder" en fait partie.

Le fichier .project situé à la racine de votre projet indique où les natures et les générateurs sont configurés. Vous devriez examiner ces fichiers dans vos deux projets. Q: dans votre espace de travail Eclipse, myproject2/.project et myproject3/.project sont-ils significativement différents (à part le nom)? Postez les différences ici. Q: est-ce que myproject2, dans SVN, contient le fichier .project?

Répondre à ces questions devrait en dire plus. Vous pouvez examiner attentivement les différentes options de vérification et de création d'un projet en une seule étape.

+0

J'ai utilisé la première méthode avec WTP et l'intégration du serveur Tomcat dans Eclipse. Comment puis-je créer un WAR par moi-même? Je suis un débutant et je n'ai utilisé que la manière WTP d'intégration. – Tim

+0

Utilisez la fonction d'exportation. Essayez l'aide Eclipse ou Google. C'est pas difficile. Et c'est bien de le faire vous-même; vous en apprendrez plus. Je vous contacterai plus tard. – Ladlestein

+0

Je l'ai fait. J'ai un myproject3.war. Je suis passé dans le dossier webapps et redémarrer Tomcat (dans Eclipse). Et puis j'ai le dossier myproject3 dans les webapps auxquels je peux accéder via http: // locahost: 8080/myproject3/ – Tim

1

Je pense Ladlestein est certainement sur la bonne voie, mais je peux ajouter un peu plus de contexte à ce problème de la manière que j'ai pu le reproduire:

J'ai un Eclipse similaire (Indigo) set jusqu'à ce que j'ai un projet Maven et que j'utilise la fonctionnalité WTP d'Eclipse pour le déployer sur un serveur Tomcat 7 intégré. Tout fonctionne correctement si j'importe le projet en tant que projet Maven à partir d'Eclipse mais mon problème se produit lorsque j'effectue un mvn eclipse:clean et mvn eclipse:eclipse à partir de la ligne de commande. Bien sûr, cela reconstruit le fichier Eclipse .project mais le laisse sans apparemment important Natures et buildCommands.

J'observe un fichier .project très similaire à celui qui est erroné dans la question (dans myproject2) et dans Eclipse même le projet n'est plus ce que Eclipse appelle un "Dynamic Web Module" - donc non déployable - et ce n'est plus un projet Maven. J'ai pu résoudre ce problème comme suit:

Tout d'abord en faire un projet Maven en ajoutant ce qui suit au fichier .project (je ne sais pas s'il y a une meilleure façon par Eclipse lui-même):

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

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

Vous pouvez maintenant vous assurer que le projet est à jour en faisant un clic droit sur le projet et en exécutant Maven > Update Project Configuration....

Ensuite, vous pouvez rendre le projet déployable via Properties > Project Facets > Dynamic Web Module (case à cocher). Voici un complete set of instructions for making your project a Dynamic Web Module plus.

En fin de votre fichier .project devrait ressembler à ceci:

<?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

J'avais le même problème (avec Eclipse & tomcat7 & WTP) & Je l'ai résolu en modifiant manuellement eclipse_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmpX\server.xml où TMPx est le dossier temporaire caches projets publier les paramètres.

0

Ce problème sera résolu uniquement en créant un nouveau projet.

0

Je voudrais un problème similaire (avec éclipse & tomcat7 & WTP). résolu en supprimant (commentant) la ligne suivante de % CATALINA_HOME%/conf/server.xml

Contexte docBase = "[CATALINA_HOME] \ webapps \\ ROOT" path = "" reloadable = "false"/>

0

Résoudre mon problème. Je copie simplement le fichier .project à partir d'un autre projet Web exécutable et modifie l'attribut de nom de projet

1

Cela se produit car le projet a été exécuté avant d'utiliser ce serveur ou a été configuré à l'aide de ce serveur. Par conséquent, son chemin est stocké dans un dossier à l'intérieur de votre répertoire tomcat.

Dans le dossier que vous tomcat, allez à conf \ Catalina \ localhost \

Dans ce dossier, supprimez le fichier xml qui correspond à votre projet.

Vous pouvez également supprimer le serveur et l'ajouter à nouveau.

-1

Problème résolu !! Il suffit de supprimer votre instance de serveur et de démarrer avec un nouveau serveur.

0

J'ai fait face au même problème. Qu'est-ce qu'un truc pour moi, dans la vue d'ensemble du serveur (double-cliquez sur votre serveur dans l'onglet serveurs), je devais définir le chemin de déploiement à "MY_SERVER_PATH \ webapps" .Hope ce sera utile.

Merci :-)

0

Retrait de l'instance de serveur de mon IDE et ajouter de nouveau résolu mon problème.

0

Dans ma situation j'ai fait les deux étapes suivantes et l'erreur se éloigna:

1 - faites un clic droit sur le projet> propriétés> facettes du projet> exécution j'ai supprimé le serveur Web, puis appliqué. il a ajouté à nouveau ensuite appliqué

2 - redémarrer l'IDE

travaillé Maladroitement pour moi.