Назад | Перейти на главную страницу

Настройка jdbc-pool (tomcat 7)

У меня проблемы с tomcat 7 для настройки jdbc-pool: я пытался следовать этому примеру: http://www.tomcatexpert.com/blog/2010/04/01/configuring-jdbc-pool-high-concurrency

так что я:

conf / server.xml

 <GlobalNamingResources>
  <Resource type="javax.sql.DataSource"
            name="jdbc/DB"
            factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/mydb"
            username="user"
            password="password"
/>
 </GlobalNamingResources>

conf / context.xml

<Context>
  <ResourceLink type="javax.sql.DataSource"
                name="jdbc/LocalDB"
                global="jdbc/DB"
/>
 <Context>

и когда я пытаюсь сделать это:

Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource datasource = (DataSource)envContext.lookup("jdbc/LocalDB");
Connection con = datasource.getConnection();

я продолжаю получать эту ошибку:

javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
 at org.apache.naming.NamingContext.lookup(NamingContext.java:803)
 at org.apache.naming.NamingContext.lookup(NamingContext.java:159)

пожалуйста, помогите TNX

Обычно для таких целей я создаю файлы context.xml.default или даже appname.xml в каталоге / conf / Catalina / localhost.

Это правильный путь.

Проверьте свой файл context.xml. Вы встроили <Context> в рамках существующих <Context> файла по умолчанию?

В худшем случае нужно взять это:

  <ResourceLink type="javax.sql.DataSource"
                name="jdbc/LocalDB"
                global="jdbc/DB"
/>

... и убедитесь, что он находится в уже существующих <Context> пометьте и избавьтесь от посторонних.

В общем, я никогда не рекомендую редактировать server.xml или context.xml с целью создания этих ресурсов. Документация Tomcat в некоторой степени поддерживает меня в этом:

http://tomcat.apache.org/tomcat-7.0-doc/config/context.html

См. Конец раздела «Введение». Обычно для таких целей я создаю файлы context.xml.default или даже appname.xml в каталоге / conf / Catalina / localhost. Абстрагирует глобальную конфигурацию от конфигурации конкретного приложения.

Вы можете выполнить поиск в одной строке через java: comp / env / jdbc / DB, вам не нужно два поиска.