Début de Tomcat échoué de Netbeans

j'ai un problème avec le démarrage D'Apache Tomcat 6 à partir de Netbeans IDE 7.4 (sur la version 7.3 j'ai eu les mêmes problèmes. Autres personnes mentionnées que ce problème existe aussi dans d'autres versions, comme 8.0 etc).

Qu'ai-je à faire:

  • 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 Apache Tomcat (version apache-tomcat-6.0.39, avec d'autres version, j'ai eu le même problème)
  • mon emplacement sur le serveur: D:apache-tomcat-netbeans
  • système variable CATALINA_HOME: D:apache-tomcat-netbeans
  • system variable JAVA HOME: C:Program fichiersJavajdk1.7.0_51
  • utilisateur tomcat: j'ai laissé netbeans créer un nouvel utilisateur, appelé tomcat avec mot de passe tomcat. Quand j'ouvre {tomcat}conftomcat-users.fichier xml après avoir ajouté le serveur, il ya des informations sur mon utilisateur:

quand je clique maintenant sur" Démarrer", je reçois " démarrage de Tomcat échoué ".

mes soupçons:

  • je travaille sur Windows 7 en tant qu'administrateur, donc je pense que ce n'est pas un problème avec les privilèges des fichiers.
  • désactiver le proxy n'a pas aidé.
  • Logs: il n'y a qu'un seul fichier log créé: localhost.2014-03-06.journal et il est totalement vide.
  • Démarrer Netbeans "comme administrateur" n'a pas aidé.
  • de la ligne de commande tout va bien, je n'ai aucun problème à démarrer en mode normal ou debug ( catalina.chauve-souris jpda démarrer ou de démarrage.chauve-souris )
55
demandé sur liquide 2014-03-06 17:17:54

5 réponses

il affecte au moins NetBeans versions 7.4 à 8.0.2. Il a été rapporté pour la première fois à partir de la version 8.0 et corrigé dans NetBeans 8.1. Il aurait eu le problème pour n'importe quelle version de tomcat (confirmé pour les versions 7.0.56 à 8.0.28).

les détails sont décrits comme bug Netbeans #248182 .

ce problème est également lié à des messages mentionnant la sortie d'erreur suivante:

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

pour un tomcat installé à partir du fichier zip, Je l'ai corrigé en changeant le fichier catalina.bat dans le répertoire tomcat bin .

trouvez 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 le modifier comme ci-dessous par supprimer 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.

157
répondu Sudeepta 2016-09-28 01:01:20

cela affecte:

  • toutes les versions de Tomcat à partir du 8.5.3.
  • toutes les versions de Netbeans jusqu'à 8.1 (il est fixé dans Netbeans 8.2).

C'est parce que Netbeans ne "voit" pas que tomcat est commencé, bien qu'il a commencé très bien.

j'ai déposé Bug #262749 avec NetBeans .

solution de contournement

dans le fichier server.xml , dans l'élément Connector pour HTTP/1.1, ajouter 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

la raison en est qu'avant 8.5.3, la valeur par défaut était de définir l'en-tête du serveur comme Apache-Coyote/1.1 , alors que depuis 8.5.3 cette valeur par défaut a été changée en blanc. Apparemment Netbeans vérifie cet en-tête.

peut - être que dans le futur nous peut s'attendre à un correctif dans netbeans abordant cette question.

j'ai pu remonter à un changement dans la documentation.

Tomcat 8.5 :

" remplace l'en-tête du serveur pour la réponse http. Si elle est définie, la valeur pour cet attribut l'emporte sur tout en-tête de serveur défini par un web application. Si non défini, toute valeur spécifiée par l'application est utiliser. Si la demande ne spécifie pas valeur alors pas de serveur l'en-tête est réglé."

Tomcat 8.0 :

" remplace l'en-tête du serveur pour la réponse http. Si elle est définie, la valeur pour cet attribut l'emporte sur la valeur par défaut de Tomcat et sur tout en-tête de serveur défini par une application web. Si non défini, toute valeur spécifiée par l'application est utilisée. Si l'application ne spécifie pas de valeur alors Apache-Coyote / 1.1 est utilisé. Sauf si vous êtes paranoïaque, vous n'aurez pas besoin cette fonctionnalité."

qui explique la nécessité d'ajouter explicitement l'attribut server depuis la version 8.5.3.

68
répondu YoYo 2016-12-12 19:24:19

aussi, il est très probable, ce problème avec les paramètres proxy.

tous ceux qui n'ont pas surmonté leur problème de départ, - essayez NetBeans choisissez pas de Proxy dans les Outils -> Options -> onglet Général.

ça m'a aidé.

11
répondu Yan Pak 2017-04-15 22:26:08

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

C'est dans la tomcat-users.xml , que vous pouvez trouver dans ${CATALINA_HOME}/conf , ou ${CATALINA_BASE}/conf ,

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

exemple, changement

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

à

<user password="tomcat" roles="manager-script,manager,admin" username="tomcat"/>
  1. s'assurer que le rôle manager-script est déclaré

ajouter

<role rolename="manager-script"/>

en fait, le netbeans online-help déclare incorrectement:

nom D'utilisateur - spécifie le nom d'utilisateur que L'IDE utilise pour se connecter dans l'application Gestionnaire du serveur. l'utilisateur doit être associé au rôle de gestionnaire . La première fois que L'IDE a démarré le serveur Web Tomcat, par exemple par le menu Démarrer/Arrêter ou en exécutant un composant web à partir de l'IDE, l'IDE ajoute un utilisateur administrateur avec un mot de passe généré au hasard au fichier tomcat-base-path/conf/tomcat-users.xml . (Cliquez avec le bouton droit de la souris sur le noeud d'instance du 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 vers le répertoire base-dir .) L'entrée de l'utilisateur administrateur dans le tomcat-users.xml le fichier ressemble à ce qui suit: <user username="idea" password="woiehh" roles="manager"/>

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

pour un fichier plus complet tomcat-users.xml :

<?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 bel affichage sur pourquoi est-ce que j'obtiens l'erreur de déploiement?

2
répondu Sampath T 2017-05-23 12:34:41

j'ai eu le même problème, mais aucune des réponses ci-dessus a travaillé. La solution pour moi était de restaurer le Manager Web application qui est livré avec Tomcat.

0
répondu lalo 2018-08-16 19:21:56