powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по DBCP
10 сообщений из 10, страница 1 из 1
Вопрос по DBCP
    #34257342
Vincent FROST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем порылся по форуму и нихрена не нашел по этой проблеме, а сам шота не могу вкурить шо происходит в восьмом часу утра.

Есть ошибка: java.lang.ClassCastException: org.apache.commons.dbcp.BasicDataSource

которая возникает при вызове вот такого кода:

Код: plaintext
Context envContext  = (Context)initContext.lookup("java:comp/env/jdbc/dbname");

test.jsp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
     try {
        
        Context initContext=  new  InitialContext();
        Context envContext  = (Context)initContext.lookup("java:comp/env/jdbc/dbname");
        DataSource pool = (DataSource)envContext.lookup("dbname");        
        
         if  (pool !=  null ) conn = pool.getConnection();
            ....
        }  catch  (Exception e){
            out.print(e.toString());
        }

web.xml
Код: plaintext
1.
2.
3.
4.
5.
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/dbname</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

server.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    <Resource
      name="jdbc/dbname"
      type="javax.sql.DataSource"
      factory="org.apache.commons.dbcp.BasicDataSourceFactory"
      password="pass"
      driverClassName="com.mysql.jdbc.Driver"
      maxIdle="2"
      maxWait="5000"
      validationQuery="select * from users"
      username="name"
      url="jdbc:mysql://127.0.0.1:3306/dbname"
      maxActive="100"/>
...
Рейтинг: 0 / 0
Вопрос по DBCP
    #34257409
Ekshibarov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
     try {
        
        Context initContext=  new  InitialContext();
        DataSource pool = (DataSource)initContext.lookup("java:comp/env/jdbc/dbname");
        
         if  (pool !=  null ) conn = pool.getConnection();
            ....
        }  catch  (Exception e){
            out.print(e.toString());
        }

...
Рейтинг: 0 / 0
Вопрос по DBCP
    #34257433
Vincent FROST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
решилось вот таким способом

Код: plaintext
Context envContext  = (Context)initContext.lookup("java:comp/env");

но выползла другая проблема. Когда пытаюсь заимплементячить этот код в init сервлета валит: java.lang.NullPointerException, ибо по каким то непонятным причинам не читает контекст как я понял.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
  Connection conn; 
         public   void  init(lb_engine config)  throws  ServletException {

         try  {
            Context initContext=  new  InitialContext();
            Context envContext  = (Context)initContext.lookup("java:/comp/env");
            DataSource pool = (DataSource)envContext.lookup("jdbc/lavablade");
             if  ( pool ==  null  )  throw   new  Exception("Data source not found!");
            Connection conn = pool.getConnection();
        }  catch (Exception e) {
            e.printStackTrace();
        }

        ServletContext context = config.getServletContext();

         super .init(config);
    }


вызов

Код: plaintext
stmt = conn.createStatement();
...
Рейтинг: 0 / 0
Вопрос по DBCP
    #34258205
Vincent FROST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хелп, ктонить, plx
...
Рейтинг: 0 / 0
Вопрос по DBCP
    #34258232
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vincent FROSTхелп, ктонить, plx
У Вас ДВЕ
Код: plaintext
Connection conn; 
Одна глобальная и одна в блоке if (pool !== null)....
Видимо Вы локальной присваиваете, а глобальная остаётся null.
...
Рейтинг: 0 / 0
Вопрос по DBCP
    #34258267
Vincent FROST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поправил, спс. ток conn всёравно нул. а задебажить в инит почемуто не получается.
...
Рейтинг: 0 / 0
Вопрос по DBCP
    #34258281
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vincent FROSTпоправил, спс. ток conn всёравно нул. а задебажить в инит почемуто не получается.
А какую убрали? :)
...
Рейтинг: 0 / 0
Вопрос по DBCP
    #34258283
Vincent FROST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
которую внутри
...
Рейтинг: 0 / 0
Вопрос по DBCP
    #34258302
mozheyko_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вызывается вообще init?
Что-то он у Вас какой-то неправильный вроде. Параметр должен быть ServletContext.
...
Рейтинг: 0 / 0
Вопрос по DBCP
    #34258329
Vincent FROST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот в таком виде завелось таки. спасибо.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
     public   void  init(ServletConfig config)  throws  ServletException {

         try  {
            Context initContext=  new  InitialContext();
            Context envContext  = (Context)initContext.lookup("java:/comp/env");
            DataSource pool = (DataSource)envContext.lookup("jdbc/lavablade");
             if  (pool ==  null  )  throw   new  Exception("Data source not found!");
                conn = pool.getConnection();
        }  catch (Exception e) {
            e.printStackTrace();
        }
         super .init(config);
    }
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по DBCP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]