Spring, использующий JNDI с Tomcat ... зачем мне нужен META-INF / context.xml в моем проекте - PullRequest
2 голосов
/ 23 марта 2012

Я пытаюсь заставить Spring работать с ресурсом tomcat JNDI для доступа к моей базе данных.Мой проект работает, если в моем проекте есть META-INF / context.xml с информацией о ресурсе, но как только я его удаляю, он останавливается .. почему.

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Если вы развертываете веб-приложение в Tomcat, в процессе развертывания Tomcat скопирует файл META-INF / context.xml в каталог $ CATALINA_HOME / conf /, чтобы контекст был доступен для вашего приложения.Помните, что если вы удаляете context.xml из вашего приложения, потому что вы этого не хотите, вам также придется удалить его вручную из $ CATALINA_HOME / conf /

Если вы отредактировали server.xml для включения вашегоРесурс dababase не работает, когда вы удаляете context.xml, это может быть связано с тем, что вы допустили ошибку при определении ресурса в файле server.xml

ОБНОВЛЕНО :

Когда ресурсв server.xml в контексте вы должны сделать ссылку на глобальный ресурс в server.xml.Например:

<Context crossContext="true" reloadable="true" >
    <ResourceLink name="jdbc/myApp" type="javax.sql.DataSource" global="jdbc/myApp" />
</Context>
0 голосов
/ 23 марта 2012

Это не связано с Spring.

Чтобы использовать JNDI, вы должны определить различные ресурсы либо как глобальную конфигурацию, либо как конфигурацию, специфичную для приложения.Например, Конфигурация источника данных JNDI

Почему вы ожидаете, что он будет работать в любом другом случае?Как Tomcat узнает, какие ресурсы предоставить, если вы их не определите?

ОБНОВЛЕНИЕ:
Вы определяете ресурс в server.xml, но вам необходимо связать ресурс с вашим веб-приложением.Вот почему вам также необходимо изменить context.xml

...