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 )
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.
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.
" 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é."
" 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.
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é.
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
,
- 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"/>
- 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épertoirebase-dir
.) L'entrée de l'utilisateur administrateur dans letomcat-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?
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.