web-dev-qa-db-fra.com

Tomcat dans l'idée. La guerre a explosé: le serveur n'est pas connecté. Déployer n'est pas disponible

J'essaie ceci tutoial . J'ai créé un nouveau projet et l'ai exécuté. Tomcat a commencé, mais rien ne s'est passé ensuite. Je peux ouvrir manuellement le navigateur http://localhost:8080 et voir la page d'accueil de Tomcat. Cela signifie que le serveur peut être démarré. Cependant, je ne peux pas ouvrir index.jsp. Voici mon écran après le démarrage: capture d'écran Comme vous pouvez le constater, le projet est en cours d'exécution, mais aucune information sur les variables d'environnement transmises. Pas de journaux.

J'utilise Tomcat 7.0.27

Idée 12.1.6

sur Opensuse 12.2

Mon dossier Tomcat HOME est /usr/share/Tomcat

Il y avait un problème: L'idée ne pouvait pas copier les fichiers de configuration depuis/usr/share/Tomcat/conf vers /home/loco/.IntelliJIdea12/system/Tomcat//conf.J'ai exécuté chmod 777 * dans /usr/share/Tomcat and the problem gone. 

J'ai aussi changé la façon dont Tomcat est démarré . C'était la valeur par défaut

/usr/share/Tomcat/bin/catalina.sh run

J'ai changé pour

/usr/share/Tomcat/bin/catalina.sh start

Toutes les autres étapes sont effectuées conformément au tutoriel.

46
PaintedRed

Le problème se produit lorsqu'un script du groupe de scripts de démarrage de Tomcat (le plus souvent setenv.sh/setenv.bat) annule la variable d'environnement Java_OPTS sans inclure la valeur d'origine. IDEA définit Java_OPTS pour indiquer à Tomcat d'écouter sur 1099 les requêtes JMX concernant l'état et les déploiements.

Un exemple de ligne d'un setenv.sh qui va casser:

export Java_OPTS="-XX:MaxPermSize=512m -Xmx1024m"

la version corrigée:

export Java_OPTS="$Java_OPTS -XX:MaxPermSize=512m -Xmx1024m"

Les mêmes exemples de lignes d'un fichier windows setenv.bat:

set Java_OPTS=-XX:MaxPermSize=512m -Xmx1024m

et corrigé:

set Java_OPTS=%Java_OPTS% -XX:MaxPermSize=512m -Xmx1024m

Si vous exécutez uniquement Tomcat à partir d'IDEA, vous pouvez procéder comme d'autres l'ont suggéré, supprimez la ligne de votre script setenv et placez les options jvm dans la configuration d'exécution IDEA.

61
codelark

J'ai résolu ce problème en supprimant mon setenv.bat dans $ CATALINA_HOME/bin. Voici les paramètres à l'intérieur:

set Java_OPTS=-server -Xmx768m -XX:MaxPermSize=256M

Je n'avais plus besoin de ces options, alors j'ai simplement supprimé le fichier. Comme le dit la réponse de prule, vous pouvez déplacer ces options vers la configuration Intellij Run. Après avoir supprimé le fichier, le déploiement a bien fonctionné dans IntelliJ.

edit: pour mieux comprendre pourquoi cela fonctionne, consultez la réponse de codelark ci-dessous . De plus, en utilisant sa méthode, vous pouvez conserver vos fichiers setenv.sh/setenv.bat, ce qui est utile si vous n'exécutez pas votre Tomcat uniquement depuis IntelliJ IDEA.

28
Christian Wilkie

Supprimer setenv.sh de $CATALINA_HOME/bin a également fonctionné pour moi. J'utilise Tomcat7/Ubuntu/IntelliJ 12

Avec setenv.sh dans le dossier bin, au démarrage dans IJ, je vois dans les journaux: 

/usr/local/Tomcat/Apache-Tomcat-7.0.52/bin/catalina.sh run
[2014-07-28 02:41:39,274] Artifact TomcatDebug:war exploded: Server is not connected. Press 'Deploy' to start deployment.
Jul 28, 2014 2:41:40 PM org.Apache.catalina.core.AprLifecycleListener init

odonovanj@ubuntuj:/usr/local/Tomcat/Apache-Tomcat-7.0.52$ Sudo netstat -tulpn|grep 2928
tcp6       0      0 :::8080                 :::*                    LISTEN      2928/Java       
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2928/Java       
tcp6       0      0 :::8009                 :::*                    LISTEN      2928/Java  

Après avoir enlevé, je vois dans les journaux: INFO: démarrage du serveur en 76 ms Connecté au serveur [2014-07-28 02: 44: 35,847] Artefact TomcatDebug: la guerre a éclaté: l'artefact est en cours de déploiement, veuillez patienter ... [2014-07-28 02: 44: 36,512] Artifact TomcatDebug: la guerre a éclaté: Artifact est déployé avec succès 

odonovanj@ubuntuj:/usr/local/Tomcat/Apache-Tomcat-7.0.52$ Sudo netstat -tulpn|grep 2346
tcp6       0      0 :::8080                 :::*                    LISTEN      2346/Java       
tcp6       0      0 :::50044                :::*                    LISTEN      2346/Java       
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2346/Java       
tcp6       0      0 :::8009                 :::*                    LISTEN      2346/Java       
tcp6       0      0 :::1099                 :::*                    LISTEN      2346/Java       
tcp6       0      0 :::52268                :::*                    LISTEN      2346/Java 

On dirait que setenv.sh surchargeait $Java_OPTS, interférant avec JNDI exécuté sur le port 1099.

5
user2262727
file->project structure->Project SDK

puis reconfigurez le SDK.

Cela a vraiment résolu mon problème.

4
user5091911

Je ne comprends pas grand chose à propos de la théorie, mais j'ai la même erreur. Après avoir attendu un peu, j'ai reçu un message disant:

Erreur lors du déploiement de l'artefact. Voir le journal du serveur pour plus de détails.

J'ai trouvé le fichier journal qui signifiait probablement: "Tomcat localhost.log" et il y avait une trace de pile pour un "NoClassDefFoundError" et un "ClassNotFoundException". J'ai fait un rafraîchissement de Maven et un "projet de reconstruction" et cela a fait l'affaire.

2
Tim Cooper

(3.2) Définir JRE_HOME ou Java_HOME (obligatoire)

Ces variables permettent de spécifier l'emplacement d'un environnement d'exécution Java ou d'un kit de développement Java utilisé pour démarrer Tomcat.

La variable JRE_HOME est utilisée pour spécifier l'emplacement d'un JRE. La variable Java_HOME est utilisée pour spécifier l'emplacement d'un JDK.

L'utilisation de Java_HOME permet d'accéder à certaines options de démarrage supplémentaires qui ne sont pas autorisées lorsque JRE_HOME est utilisé.

Si JRE_HOME et Java_HOME sont spécifiés, JRE_HOME est utilisé.

J'ai eu ce problème avec Tomcat 7.0.27 . Je suis passé à Tomcat 8.0.21 et le problème a été résolu :)

0
Pleymor

Accédez au répertoire Tomcat BIN DIRECTORYExécutez la commande Invite la commande suivante.

cd Tomcat-9991\bin

catalina.bat courir

la sortie que j'ai eu était 

Exception in thread "main" Java.lang.UnsupportedClassVersionError: org/Apache/catalina/startup/Bootstrap : Unsupported major.minor version 52.0
        at Java.lang.ClassLoader.defineClass1(Native Method)
        at Java.lang.ClassLoader.defineClass(ClassLoader.Java:800)
        at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:142)
        at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:449)
        at Java.net.URLClassLoader.access$100(URLClassLoader.Java:71)
        at Java.net.URLClassLoader$1.run(URLClassLoader.Java:361)
        at Java.net.URLClassLoader$1.run(URLClassLoader.Java:355)
        at Java.security.AccessController.doPrivileged(Native Method)
        at Java.net.URLClassLoader.findClass(URLClassLoader.Java:354)
        at Java.lang.ClassLoader.loadClass(ClassLoader.Java:425)
        at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:308)
        at Java.lang.ClassLoader.loadClass(ClassLoader.Java:358)
        at Sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.Java:482)

Indiquant que j’ai eu un problème de version Java entre mon Tomcat et le JDK, je le réglais aussi. 

Je pourrais y remédier en accédant à la version correcte de JDK.

0
Amjad

Un moyen simple est de changer le numéro de port dans ce fichier:

-Dcom.Sun.management.jmxremote.port=1099

remarquez le port, la valeur par défaut est 1099, mais lorsque vous utilisez JMX, il peut être modifié par vous ou par quelqu'un, donc changez simplement le port, ce sera OK, pas besoin de le supprimer du dossier bin Tomcat.

0
gangdaner

Si vous avez modifié le fichier /etc/hosts, vous devez y ajouter une ligne localhost YOU_USER_NAME

0
ZunPiau

Je rencontre ce problème lorsque j'essaie d'importer un projet d'Eclipse vers IDEA.

Il n'y a pas de setter.sh dans $CATALINA_HOME/bin. Les paramètres Project Structure et Run Configuration dans IDEA semblent corrects, le projet entier fonctionne normalement dans Eclipse, mais affiche cette erreur dans IDEA.

Ma solution est de supprimer le dossier .idea, puis de réimporter l’ensemble du projet. Je ne sais pas quelle est la cause exacte de ce problème, mais cela fonctionne pour moi.

Maintenant, le journal ressemble à ça:

/Library/Tomcat/bin/catalina.sh run

[2015-09-22 12:40:57,906] Artifact bookstore:war exploded: Server is not connected. Deploy is not available.
XXXXXX
Connected to server
[2015-09-22 12:40:58,848] Artifact bookstore:war exploded: Artifact is being deployed, please wait...
XXXXXX
[2015-09-22 12:41:07,862] Artifact bookstore:war exploded: Artifact is deployed successfully
[2015-09-22 12:41:07,863] Artifact bookstore:war exploded: Deploy took 9,015 milliseconds
0
Hunger

Une autre raison, si votre chemin Tomcat contient un blanc ou un '(', cette erreur se produira également. Renommez votre chemin Tomcat.

0
cnsuifeng

J'ai eu ce problème lorsque j'avais défini Java_OPTS dans catalina.bat. En supprimant cela, Tomcat a démarré et déployé comme prévu. Les valeurs Java_OPTS peuvent être définies dans Intellij Run config.

0
prule