Tomcat6 ignore META-INF/context.xml
Tomcat6 garde le silence sur mon META-INF/context.xml. Je reçois des "Nom de la tt n'est pas lié dans ce Contexte," quand j'ai essayer de trouver "tt" (veuillez consulter les "détails").
Quand j'ai mis le contenu de META-INF/context.xml a l'intérieur du "contexte" dans la balise server.xml, il fonctionne. J'ai aussi vérifié que les $Tomcat-base/Catalina/localhost est vide, donc mon META-INF/context.xml n'est pas surchargé.
détails:
Version de Tomcat: 6.0.10
Voici mon Webroot structure:
Webroot
|META-INF
| |-context.xml
|
|WEB-INF
|-web.xml
Contenu de context.xml:
<Context>
<Environment name="tt" value="this is a string" type="java.lang.String"></Environment>
</Context>
Contexte de la balise de cette webroot dans server.xml:
<Context path="/test" docBase="E:\javaProjects\TestProject\Webroot" reloadable="true"></Context>
La façon dont je regarde le "tt":
...
Context ic = new InitialContext();
Context ec = (Context) ic.lookup("java:comp/env");
String str = (String) ec.lookup("tt");
System.out.println("str is "+str);
L'erreur que je reçois:
javax.naming.NameNotFoundException: Name tt is not bound in this context
OriginalL'auteur stackoverflower | 2011-09-15
Vous devez vous connecter pour publier un commentaire.
J'ai obtenu votre code de travail SI je supprime la
<Context>
de l'server.xml et de définir ce que dans lesMETA-INF/context.xml
Il ne fonctionne pas quand la
<Context>
est définie dans les deux endroits.Deuxièmement, changer votre type de Chaîne, au lieu d'un Entier
Idéalement Tomcat permettra de déchiffrer le chemin de la docBase automatiquement, donc pour votre nom de chemin d'accès "/test". Au lieu de garder le projet dans
E:\javaProjects\TestProject\Webroot
il serait dansTOMCAT_HOME\webapps\test
, alors vous n'aurez pas besoin de l'entrée en server.xml à tous.OriginalL'auteur JoseK
vous ne pouvez pas avoir deux contextes d'un hôte défini dans deux fichiers différents, qui était à la racine du problème. Pour plus d'informations, lisez cette article.
OriginalL'auteur Raman