Impossible de "lancer sur le serveur" une webapp à partir D'Eclipse
lors de l'exécution de mon projet WebApp à partir D'Eclipse la plupart du temps, il fonctionne correctement. Mais si par erreur pour arrêter le serveur, je le tue dans la vue" Console "au lieu de" arrêter "le serveur de la vue" Serveurs". Tout en dirigeant le projet propre je reçois ce
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.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)
et en lançant je reçois ce
SEVERE: Error starting static Resources
java.lang.IllegalArgumentException: Document base D:workspace.metadata.pluginsorg.eclipse.wst.server.coretmp0wtpwebappsWebapp 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)
aidez-nous à nous en remettre.
15 réponses
j'ai eu du mal à le faire fonctionner, mais grâce à "Alexander Pogrebnyak" (voir déployer un fichier de guerre dans WTP (Eclipse) tomcat server ) j'ai pu faire fonctionner Eclipse Web Projects avec Maven à travers m2e:
avant de commencer, je dois dire que je suis un homme très suspicieux, donc je commence toujours par nettoyer tous mes projets en utilisant "Eclipse > Project > Clean..."menu (sans option" démarrer une construction immédiatement " cochée). Je n'aime pas "Eclipse > Projet > générer Automatiquement" option cochée.
soit dit en passant, je suppose que vous aurez déjà installé votre plugin m2e, ou ce que je vais énoncer n'a pas de sens...
bon, commençons:
tout d'Abord, bye bye la configuration du Serveur:
1) Si vous avez un projet, une précédente configuration du serveur, supprimer (clic droit sur le serveur et sélectionnez "Ajouter et supprimer" option)
2) Nettoyez le répertoire de travail de votre serveur (clic droit sur le serveur et sélectionnez "Tomcat Server Work Directory")
3) Nettoyer les "restes" compilés (clic droit sur le serveur et sélectionner "nettoyer")
4) supprimez la configuration de votre serveur de L'onglet" Serveurs
5) supprimez complètement votre projet/dossier" Serveurs "(indiqué dans l'onglet" Project Explorer")
6) BONUS: je supprime aussi mon environnement d'exécution du serveur ("Eclipse > Fenêtre > Préférences > Serveur > Environnements d'Exécution")
Second, " Maven clean" (si votre projet web a une "nature Maven"):
1) clic droit sur votre projet web
2) "Pop up Menu > Run As > Maven clean "
cela devrait effacer votre dossier cible
la Troisième, Instal m2e VDP de l'intégration (ouais! Il n' pas "par défaut". Une journée entière pour le comprendre):
1) Ouvrir Maven "Découverte" de l'option (Eclipse > Fenêtres > Préférences > Maven > Découverte)
2) Appuyez sur le bouton "Ouvrir Catalogue" (une fenêtre "M2E Marketplace" doit apparaître)
3) Faites défiler vers le bas jusqu'à ce que vous trouviez l'option" intégration WTP", puis" vérifiez"!
4) Cliquez Sur "Terminer"
5) un" écran de plugin comme " sera apparaître. "Suivant", "Suivant", "d'Accord", bla, bla, bla...
Quatrième, laissez Éclipse de l'exécuter à nouveau:
1) si on ne me demande pas de redémarrer Eclipse (que j'ai du mal à croire que vous ne le ferez pas), redémarrez-le vous-même!
Cinquième, maven réinsertion:
1) Ajouter Maven nature au projet (clic droit sur votre projet web, " Pop up Menu > Configurer > convertir en Maven Projet")
2) Mettez à jour votre configuration maven (oui, oui, suspect, je sais). Faites un clic droit sur votre projet web, maintenant avec un "M"sur son icône ("Pop up Menu > Maven > Update Project")
3) Exécutez un Maven install (clic droit sur votre projet web, "Pop up Menu > Run As > Maven install")
4) Construisez votre projet ("Eclipse > Project > Build All")
Sixième, mettre tous au travail:
1) déployer et exécuter votre application web (Clic droit sur votre projet web, "Pop up Menu > Run As > Run on Server")
2) il vous sera demandé de créer une autre configuration de serveur. Il va créer le Projet/Dossier" serveurs " à nouveau, mais c'est comme ça.
C'est ça!!! Je dois admettre qu'une fois que j'ai lancé le serveur, ça n'a pas marché, mais cette fois (je ne sais pas pourquoi) les bibliothèques "Log4J" n'ont pas pu être trouvées. Après un projet de "nettoyer" + "maven clean "et un" maven install " + "project build" un autre message indiquant que ma classe de Servlet n'a pas pu être trouvée. Encore une fois, j'ai exécuté un projet de "nettoyer" + "maven propre" et un "maven installer" + "projet de construction" et de "voilà"!!! Cela a fonctionné (et c'est pourquoi je suis si suspicieux).
je commençais à m'inquiéter avec ce nouveau double Juno + m2e... Je n'ai jamais eu ce genre de problème avec Indigo ou Ganymède... Mais je suppose que je peux encore faire confiance à Eclipse (puis-je?)
ne faites pas ces folles solutions cosmiques !!
Cela fonctionne très bien:
Ajouter à votre ".projet "fichier (caché) ces lignes:
<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>
Profitez-en !
pourquoi? si vous cochez ce répertoire inexistant, Eh bien, que "../.metadata/blah/blah/tmp0/wtpwebapps/YOURPROJECT/"
est vide: alors votre construction ne crée pas la guerre... !!!
parce que maven plugin n'est pas comprendre QU'il doit !
j'ai trouvé ça après en avoir comparé deux .fichiers de projets de différents projets de déploiement / non-déploiement...
l'Espoir aidé !
, j'ai supprimé le "dossier de problème" .métadonnées.plugins\org.Eclipse.wst.serveur.core\ tmp0 \ et ça marche maintenant :)
j'ai exactement le même problème et la même exception exacte, mais j'ai résolu le problème juste en spécifiant le type de paquet de POM à war comme "war" et clic droit sur le projet et sélectionnez 'Maven > Update Project Configuration', puis re-déployer ce module web sur tomcat server, c'est tout!
Just do maven -> mise à Jour de la configuration du projet et nettoyer/construire à partir d'eclipse. Le projet sera chargé.
j'ai souffert de ce problème, mais la cause était différente.
Le problème est né de wrong server name([Project Name] != [Server Name])
.
J'ai pensé que je pouvais comprendre par recréer le Serveur .
ce problème peut être résolu par les étapes suivantes:
- supprimer le serveur : clic droit sur
[Severs]
et supprimer le serveur. - Supprimer serveur: clic droit sur
[Project Explorer]
et supprimer serveur(vous avez créé). - Propre Projet : menu
[Project -> Clean]
- créer serveur: clic droit sur
[Severs]
et nouveau serveur. - Edit server.xml: modifier
server.xml
pour votre serveur web. - ajouter serveur: clic droit sur
[Severs]
et supprimer serveur.
j'ai été assez perplexe par le problème parce que j'ai eu une autre dépendance jar travaillant avant que le problème se soit produit. J'utilise Eclipse Luna qui avait déjà l'intégration m2e et aucune des solutions ci-dessus n'a fonctionné pour moi.
le problème a commencé en ajoutant une nouvelle dépendance jar à un projet maven war, mais il a quand même bien fonctionné quand celui-ci a été commenté dans la pom. Heureusement, j'ai pu comparer les deux projets, et finalement le problème était lié à un manque aspect du projet dans le nouveau projet jar: Module utilitaire.
- bouton droit sur le projet: facettes du projet
- Vérifier "Module d'Utilitaire" et enregistrer
- Supprimer l'application de tomcat et de la publier à nouveau.
Vérifier Tomcat doc pour le Document de base xyz n'existe pas ou n'est pas lisible répertoire:
base de Document n'existe pas ou n'est pas un répertoire lisible L'URL spécifié par la guerre paramètre doit identifier un répertoire sur ce un serveur qui contient la version" déballée " d'une application web, ou L'URL absolue d'un fichier d'archives d'application web (WAR) qui contient cette application. Corriger la valeur spécifiée par la guerre paramètre.
pouvez-vous faire manuellement" nettoyer..."et puis "Publier" (à partir du menu contextuel sur Tomcat en vue des Serveurs) après nettoyage de projet est terminé?
j'ai cessé d'utiliser cette méthode pour exécuter mon webapp.
J'utilise mvn tomcat:run
à la place. Beaucoup plus facile. Si je ne sais pas comment déboguer.
ce problème peut être causé par le fait que votre projet local n'est pas synchronisé avec votre dépôt de code. Je suggère de rafraîchir / synchroniser votre projet.
j'ai rencontré le même problème et nettoyer et recréer le serveur n'aide pas. Mais lorsque j'ai déployé un autre projet, il a pu démarrer avec succès. Après beaucoup de comparaison, j'ai trouvé des différences dans la .les fichiers de projet. J'ai donc copier le contenu de l' .le fichier de projet du projet de travail dans celui qui a un problème, l'ajouter de nouveau au serveur et il fonctionne. Voici le contenu de la .fichier de projet qui fonctionne. Notez que vous devez modifier le nom du projet en conséquence:
<?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>
a tout essayé sans succès. Je viens d'avoir un projet dans mon éclipse. Fermer éclipse vers le bas, renommez le répertoire eclipse, décompressez-le à nouveau, commencé frais dans la nouvelle eclipse. Il a travaillé.
non ce n'est pas efficace.
les Étapes que j'ai suivi et sera à 100%:
- Nettoyez votre serveur et le répertoire de travail de votre serveur en cliquant avec le bouton droit de la souris sur le serveur
- supprimer le dossier serveur de votre fenêtre d'Explorateur de projet
- Supprimer le serveur à partir de l'environnement d'exécution ie Eclipse -> Fenêtre -> Préférences -> Serveur -> Environnements d'Exécution
- Shut eclipse et recommencer
- Run le fichier sur le serveur reconfigure à nouveau le serveur Apache
- le problème est résolu
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
dans mon cas il suffisait de copier (du projet de travail):
- .paramètres
- .classepath
- .projets