Tomcat6 игнорирует META-INF / context.xml - PullRequest
3 голосов
/ 15 сентября 2011

Tomcat6 продолжает игнорировать мой META-INF / context.xml. Я продолжаю получать «Имя tt не связано в этом контексте», когда я пытаюсь найти «tt» (см. «Подробности»).

Когда я помещаю содержимое META-INF / context.xml в тег 'context' в server.xml, это работает. Я также проверил, что $ Tomcat-base / Catalina / localhost пусто , поэтому мой META-INF / context.xml не переопределяется.


подробности:

Tomcat версия: 6.0.10

Вот моя структура Webroot:

Webroot
| М- INF
| | -Context.xml
|
| -WEB-INF
| -Web.xml

Содержимое context.xml:

<Context>
    <Environment name="tt" value="this is a string" type="java.lang.String"></Environment>
</Context>

Контекстный тег этого корня в файле server.xml:

<Context path="/test" docBase="E:\javaProjects\TestProject\Webroot" reloadable="true"></Context>

То, как я ищу "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);

Я получаю ошибку:

javax.naming.NameNotFoundException: Name tt is not bound in this context

Ответы [ 2 ]

5 голосов
/ 15 сентября 2011

Ваш код работает ЕСЛИ я удаляю <Context> из server.xml и определяю его только в META-INF/context.xml

Не работает, когда <Context> определен в обоих местах.

Во-вторых, измените ваш тип на String вместо Integer

<Environment name="tt" value="this is a string" type="java.lang.String"></Environment>
</Context>
0 голосов
/ 10 мая 2012

вы не можете иметь два контекста на одном хосте, определенных в двух разных файлах, что было причиной проблемы. Для получения дополнительной информации прочитайте эту статью.

...