Squeak.ru - шаблоны программирования

Ноинициалконтекстексцептион

У меня проблема. Я хочу подключиться к базе данных с помощью JDBC, у меня есть сервер Tomcat. Для этого я использую пул соединений.

Согласно учебникам в Интернете, которые я написал: context.xml:

<?xml version="1.0" encoding="UTF-8"?>

<Context antiJARLocking="true" path="/Server" docBase="dbcp" debug="5"
         reloadable="true" crossContext="true">

    <Resource name="jdbc/TestDB" auth="Container"
          type="javax.sql.DataSource" removeAbandoned="true"
          removeAbandonedTimeout="30" maxActive="100"
          maxIdle="30" maxWait="10000" username="root"
          password="newpass"
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/delta_server"/>

</Context>

веб.xml:

<resource-ref>
      <description>DB Connection Pooling</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

а я пытаюсь подключиться...

Connection conn=null;
DataSource ds;
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
ds = (DataSource) envContext.lookup("jdbc/TestDB");
conn = ds.getConnection();

Но я получаю сообщение об ошибке: javax.naming.NoInitialContextException: необходимо указать имя класса в свойстве среды или системы, либо в качестве параметра апплета, либо в файле ресурсов приложения: java.naming.factory.initial

Что делать???


  • Точная версия Tomcat? Недопустимый атрибут пути в файле context.xml. Атрибут отладки почти наверняка предназначен для более старой версии Tomcat, чем вы используете. Подключение к базе данных с правами root небезопасно. Где (сервлет, JSP, апплет и т. д.) находится код, из которого вы пытаетесь получить доступ к базе данных? 22.06.2012
  • У меня версия 7.0.22. Насчет подключения под root - согласен, так что это временное решение. Позже собираюсь поменять. Код находится в классе, который используется веб-службой. 22.06.2012
  • Я добавил следующие строки кода Hashtable env = new Hashtable(); env.put(java.naming.factory.initial, org.apache.naming.java.javaURLContextFactory); env.put(java.naming.factory.url.pkgs, org.apache.naming); env.put(java.naming.factory.url.pkgs.prefixes, org.apache.naming); env.put(java.naming.provider.url,org.apache.naming); Контекст initContext = новый InitialContext(env); но теперь есть другая проблема. javax.naming.NameNotFoundException: имя java:comp не связано в этом контексте 22.06.2012
  • Кроме того, как вы запускаете Tomcat? 23.06.2012
  • Как именно выполняется этот код? Это происходит в потоке, созданном приложением? Похоже, код выполняется вне загрузчика классов веб-приложения. 23.06.2012
  • код выполняется в классе, используемом для доступа к базе данных mysql из веб-службы... если я правильно понимаю ваш вопрос.. 27.06.2012
  • Полная трассировка стека NoInitialContextException? 29.06.2012
  • 02 июля 2012 г. 11:29:50 com.db.SessionContextDAO getConnection СЕРЬЕЗНЫЙ: null javax.naming.NameNotFoundException: Имя java: не связано в этом контексте. Просто это, это полная трассировка стека 02.07.2012

Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...