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.
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.
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.
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.
file->project structure->Project SDK
puis reconfigurez le SDK.
Cela a vraiment résolu mon problème.
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.
(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 :)
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.
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.
Si vous avez modifié le fichier /etc/hosts
, vous devez y ajouter une ligne localhost YOU_USER_NAME
.
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
Une autre raison, si votre chemin Tomcat contient un blanc ou un '(', cette erreur se produira également. Renommez votre chemin Tomcat.
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.