web-dev-qa-db-fra.com

Le démarrage de Tomcat a échoué depuis Netbeans

J'ai des problèmes pour démarrer Apache Tomcat 6 à partir de Netbeans IDE 7.4 (sur la version 7.3, j'ai eu les mêmes problèmes. D'autres personnes ont mentionné que ce problème existait aussi dans d'autres versions, comme la version 8.0, etc.). 

Qu'est-ce que j'ai fait: 

  • enlever Tomcat 7 installé (sans l'enlever, j'ai eu les mêmes difficultés) 
  • ajouter un nouveau serveur, téléchargé à partir du site Web Apache Tomcat (version Apache-Tomcat-6.0.39, avec une autre version, j'ai eu les mêmes problèmes) 
  • mon emplacement de serveur: D:\Apache-Tomcat-netbeans 
  • variable système CATALINA_HOME: D:\Apache-Tomcat-netbeans 
  • variable système Java HOME: C:\Program Files\Java\jdk1.7.0_51 \ 
  • Utilisateur Tomcat: Je laisse les netbeans créer un nouvel utilisateur, appelé Tomcat avec le mot de passe Tomcat. Lorsque j'ouvre le fichier {Tomcat}\conf\Tomcat-users.xml après avoir ajouté le serveur, des informations sur mon utilisateur apparaissent: 

    <utilisateur password = "Tomcat" roles = "manager, admin" username = "Tomcat" />

Quand je clique maintenant sur "démarrer", je reçois le message " Le démarrage de Tomcat a échoué ". 

Mes soupçons: 

  • Je travaille sous Windows 7 en tant qu'administrateur, je pense donc que ce n'est pas un problème de privilèges sur les fichiers. 
  • Désactiver le proxy n'a pas aidé. 
  • Journaux: Un seul fichier journal a été créé: localhost.2014-03-06.log et il est totalement vide. 
  • Démarrer Netbeans "en tant qu'administrateur" n'a pas aidé.
  • Depuis la ligne de commande, tout va bien, je n'ai aucun problème pour démarrer en mode normal ou déboguer (catalina.bat jpda start ou startup.bat)
55
liquide

Cela affecte au moins les versions de NetBeans 7.4 à 8.0.2. Il a été signalé pour la première fois à partir de la version 8.0 et corrigé dans NetBeans 8.1. Cela aurait posé problème pour toutes les versions de Tomcat (confirmé pour les versions 7.0.56 à 8.0.28).

Les détails sont décrits comme suit: Netbeans bug n ° 248182

Ce problème est également lié aux publications mentionnant le résultat d'erreur suivant:

'127.0.0.1 *' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes.

Pour un Tomcat installé à partir du fichier Zip, je l'ai corrigé en modifiant le fichier catalina.bat dans le répertoire Tomcat bin.

Recherchez la configuration ci-dessous dans votre fichier catalina.bat.

:noJuliConfig
set "Java_OPTS=%Java_OPTS% %LOGGING_CONFIG%"

:noJuliManager
set "Java_OPTS=%Java_OPTS% %LOGGING_MANAGER%"

Et changez-le comme ci-dessous par supprimant les guillemets} _:

:noJuliConfig
set Java_OPTS=%Java_OPTS% %LOGGING_CONFIG%

:noJuliManager
set Java_OPTS=%Java_OPTS% %LOGGING_MANAGER%

Enregistrez maintenant vos modifications et démarrez votre Tomcat à partir de NetBeans.

159
Sudeepta

Cela affecte:

  • Toutes les versions de Tomcat à partir de 8.5.3.
  • Toutes les versions de Netbeans jusqu'à 8.1 (cela est corrigé dans Netbeans 8.2).

En effet, Netbeans ne "voit" pas que Tomcat est démarré, bien que tout ait bien commencé.

J'ai classé Bogue n ° 262749 auprès de NetBeans .

Workaround

Dans le fichier server.xml, dans l'élément Connector pour HTTP/1.1, ajoutez l'attribut suivant: server="Apache-Coyote/1.1"

Exemple:

<Connector
  connectionTimeout="20000"
  port="8080"
  protocol="HTTP/1.1"
  redirectPort="8443"
  server="Apache-Coyote/1.1"
/>

Cause

En effet, avant 8.5.3, la valeur par défaut était de définir l'en-tête du serveur sur Apache-Coyote/1.1, alors que depuis 8.5.3, cette valeur par défaut est désormais vide. Apparemment, Netbeans vérifie cet en-tête.

Peut-être qu’à l’avenir nous pourrions nous attendre à une solution dans Netbeans pour résoudre ce problème.

J'ai pu remonter à un changement de documentation.

Tomcat 8.5 :

"Remplace l'en-tête du serveur pour la réponse http. Si elle est définie, la valeur De cet attribut remplace tout en-tête de serveur défini par une application Web Si elle n'est pas définie, toute valeur spécifiée par l'application est Utilisée. Si l'application ne spécifie pas de valeur, aucun en-tête Server .__ n'est défini. "

Tomcat 8.0 :

"Remplace l’en-tête du serveur pour la réponse http. Si elle est définie, la valeur De cet attribut remplace la valeur par défaut de Tomcat et toute en-tête de serveur Définie par une application Web. Si elle n’est pas définie, toute valeur spécifiée par application est utilisée. Si l’application ne spécifie aucune valeur, alors Apache-Coyote/1.1 est utilisé. Si vous n'êtes pas paranoïaque, vous n’avez pas besoin de cette fonctionnalité. "

Cela explique la nécessité d'ajouter explicitement l'attribut du serveur depuis la version 8.5.3.

70
YoYo

En outre, il est très probable que ce problème avec les paramètres de proxy.

Tous ceux qui n’ont pas surmonté le problème de démarrage de Tomact, essayez dans NetBeans de choisir Pas de proxy dans les outils -> Options -> onglet Général.

Ça m'a aidé.

15
Yan Pak

Pour que NetBeans puisse interagir avec Tomcat, il faut que l'utilisateur configuré comme tel dans netbeans soit correctement configuré dans le fichier Tomcat-users.xml. NetBeans peut le faire automatiquement.

C’est-à-dire, dans le Tomcat-users.xml, que vous pouvez trouver dans ${CATALINA_HOME}/conf ou ${CATALINA_BASE}/conf,

  1. assurez-vous que l'utilisateur (comme choisi dans netbeans) est ajouté le rôle script-manager

Exemple, changer

<user password="Tomcat" roles="manager,admin" username="Tomcat"/>

À

<user password="Tomcat" roles="manager-script,manager,admin" username="Tomcat"/>
  1. assurez-vous que le rôle manager-script est déclaré

Ajouter

<role rolename="manager-script"/>

En fait, l'aide en ligne Netbeans indique de manière incorrecte:

Nom d'utilisateur - Spécifie le nom d'utilisateur utilisé par IDE pour se connecter à l'application de gestion du serveur. L'utilisateur doit être associé au rôle de responsable. La première fois que IDE a démarré le serveur Web Tomcat, par exemple via l'action du menu Démarrer/Arrêter ou en exécutant un composant Web à partir de l'EDI, IDE ajoute un utilisateur admin avec un mot de passe généré de manière aléatoire. dans le fichier Tomcat-base-path/conf/Tomcat-users.xml. (Cliquez avec le bouton droit de la souris sur le noeud d'instance de serveur Web Tomcat dans la fenêtre Services et sélectionnez Propriétés. Dans la boîte de dialogue Propriétés, la propriété Répertoire de base pointe sur le répertoire base-dir.) L'entrée utilisateur admin dans le fichier Tomcat-users.xml ressemble à ce qui suit: <user username="idea" password="woiehh" roles="manager"/>

Le rôle doit être manager-script et non pas manager.

Pour un fichier Tomcat-users.xml plus complet:

<?xml version='1.0' encoding='utf-8'?>
<Tomcat-users>
  <role rolename="manager-script"/>
  <role rolename="manager-gui"/>
  <user password="Tomcat" roles="manager-script" username="Tomcat"/>
  <user password="pass" roles="manager-gui" username="me"/>
</Tomcat-users>

Il y a un autre message de Nice sur pourquoi est-ce que je reçois l'erreur de déploiement?

2
Sampath T

J'ai eu le même problème mais aucune des réponses ci-dessus n'a fonctionné .. La solution pour moi était de restaurer l'application Web Manager fournie avec Tomcat.

1
lalo