Déployer l'application sur l'hôte personnalisée de Tomcat
Question
J'ai eu quelques problèmes à déployer mon application.
Environnement. Ubuntu 10.04, Tomcat 7,02 (Installer à partir d'archives du site tomcat, pas de dépôts), le serveur est exécuté et stoped manualy, ne pas utiliser de IDE
Pour la première fois que je l'ai créé hôte $CATALINA_HOME/conf/server.xml
:
<Host name="java.dev"
appBase="/home/krasilich/java/"
autoDeploy="true" >
<Alias>www.java.dev</Alias>
</Host>
Ensuite, créez un contexte dans $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
:
<Context docBase="siloc/web/" />
Et a obtenu l'erreur
A docBase / home / krasilich / java / siloc / web / intérieur de l'hôte appBase a été spécifié, et sera ignoré
Mais, si je copie manager.xml à $CATALINA_HOME/conf/Catalina/java.dev/
je peux courir l'application de gestionnaire.
Si je envoyer ma demande par déployer gestionnaire - il dit que tout va bien, mais je vois toujours le 404 sur java.dev:8080/siloc /
C'est tout au sujet de l'hôte personnalisé.
J'ai essayé d'application Déployez via le gestionnaire sur localhost aussi et il fonctionne, je peux voir mon « Bonjour mot » sur localhost: 8080 / siloc /
Mais, si je change le texte dans mon index.jsp ça va pas affecté frontend. Le bouton « Redéployer » est pas d'aide pour moi.
Comme je l'ai mentionné gestionnaire il suffit de copier les fichiers d'application dans le répertoire des webapps, et ne font pas de changements dans les fichiers de configuration.
Tout ce que je besoin que je peux déployer l'application dans un répertoire dans mon système de fichiers (en fait, il sera /home/krasilich/java/
).
Et ce serait bien si je peux le faire sur l'hôte personnalisé comme java.dev
Je besoin de la réponse, pourquoi le contexte dans $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
ne fonctionne pas pour moi, et que dois-je faire pour le rendre cohérent?
Merci.
La solution
J'ai été en mesure de reproduire votre problème.
Il y a 2 solution de contournement que je peux suggérer après bricoler avec des combinaisons de appBase
et docBase
. On dirait que les deux ne fonctionnent ensemble.
Option 1 - supprimer appBase
Retirez le appBase
de server.xml
et indiquer le chemin complet vers l'application web docBase
dans le $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
Je suppose que votre valeur sera /home/krasilich/java/siloc/web/siloc
.
Remarque: en spécifiant que jusqu'au dossier parent /home/krasilich/java/siloc/web/
vous montrera un répertoire liste du dossier parent
Option 2 - Supprimer docBase
Dans $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
enlever la docBase
et ne garder que <Context/>
Tomcat infère le nom de webapp siloc
du $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
et il recherche le nom webapp siloc
dans le appBase.
Cela permet java.dev:8080/siloc/ au travail vous a fourni changer aussi le appBase
dans server.xml
dans le dossier parent de votre webapp siloc
.
En réponse à pourquoi les travaux de manager
, même raison - il n'y a pas docBase dans le manager.xml
Je cherche d'autres combinaisons de docBase mais une valeur que je donne la lance
AVERTISSEMENT: Une docBase ... à l'intérieur de l'hôte appBase a été spécifié, et sera ignoré
Donc, ma conclusion est d'enlever le docBase. Ce n'est pas une bonne idée -. Car le chemin complet vers le dossier parent est alors compilé dans server.xml