Если исключение говорит о том, что оно не может найти jdbc
в контексте JNDI, то это примерно означает, что вы пытались получить DataSource
следующим образом
dataSource = new InitialContext().lookup("jdbc/tomdb11");
, а ваш server.xml
файл сообщает следующее:
<Resource
name="tomdb11"
>
Эти имена не одинаковы. На самом деле, вы должны были использовать:
dataSource = new InitialContext().lookup("tomdb11");
В Tomcat, однако, InitialContext
напрямую не указывает на java:comp/env/
, поэтому вам нужно заменить его на:
dataSource = new InitialContext().lookup("java:comp/env/tomdb11");
Однако обычная практика заключается в том, что вы указываете источники данных JDBC с префиксом jdbc
. Поэтому я бы переименовал ресурс в
<Resource
name="jdbc/tomdb11"
>
и доступ к нему по
dataSource = new InitialContext().lookup("java:comp/env/jdbc/tomdb11");
В веб-приложении web.xml
вы также должны иметь следующее объявление ресурса:
<resource-env-ref>
<resource-env-ref-name>jdbc/tomdb11</resource-env-ref-name>
<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>
Для получения более подробной информации о Tomcat JNDI, проверьте это HOWTO: http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html. Надеюсь, это поможет.