powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Не работает DataSource в Web-приложении. Что исправить?
9 сообщений из 9, страница 1 из 1
Не работает DataSource в Web-приложении. Что исправить?
    #32628130
Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Д
Гость
В Tomcat 5 настроен DataSource.
Имя драйвера, логин, пароль и URL правильные, - я раньше соединялся по ним успешно, эта информация была прописана в struts-config.xml.

В web.xml я прописал:

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

В Action'е (Web-приложение построено на Struts) доступ осуществляется так:

Код: plaintext
1.
2.
3.
4.
5.
        InitialContext ctx =  new  InitialContext();
        DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/PortalData");
        Connection con = ds.getConnection();
        String info = con.getMetaData().getDatabaseProductName();
        con.close();

В результате выдаётся ошибка:

Код: plaintext
1.
2.
3.
4.
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null', cause: null
	org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:750)
	org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:518)
	com.tinyportal.actions.DSTestAction.execute(DSTestAction.java:31)

Что сделано неправильно?
Где поправить?
...
Рейтинг: 0 / 0
Не работает DataSource в Web-приложении. Что исправить?
    #32628174
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот глянь: http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/context.html

Раздел Special Features | Resource Definitions, Resource Parameters:

You MUST
also define Resource Parameters for the same resource name, to configure the object factory to be used (if not known to Tomcat already), and the properties used to configure that object factory.


Я создал свой файл в Tomcat\conf\Catalina\localhost с именем приложения, после чего прописал все туда. Работает:)
...
Рейтинг: 0 / 0
Не работает DataSource в Web-приложении. Что исправить?
    #32629371
Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Д
Гость
У меня этот файл создался сам (Tomcat создал), и в нём была прописана часть нужной информации.
Бардак какой-то.
Я добавил недостающую информацию туда, и DataSource заработал.
Кстати, в server.xml все параметры были прописаны, но этого оказалось мало.

Коряво сделано, просто ***дец.
...
Рейтинг: 0 / 0
Не работает DataSource в Web-приложении. Что исправить?
    #32629519
Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Д
Гость
Теперь один DataSource работает, а другой - нет.
Ошибка NullPointerException происходит при вызове getConnection() второго DataSource.

Работающий DataSource - подключён к Sybase, неработающий - к Oracle.
...
Рейтинг: 0 / 0
Не работает DataSource в Web-приложении. Что исправить?
    #32629539
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovВот глянь: http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/context.html

Раздел Special Features | Resource Definitions, Resource Parameters:

You MUST
also define Resource Parameters for the same resource name, to configure the object factory to be used (if not known to Tomcat already), and the properties used to configure that object factory.


Я создал свой файл в Tomcat\conf\Catalina\localhost с именем приложения, после чего прописал все туда. Работает:)
Я так понял, что у тебя все всегда работает )). Черт, почему у меня не так...
...
Рейтинг: 0 / 0
Не работает DataSource в Web-приложении. Что исправить?
    #32629559
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я могу лишь свой показать, были какие-то там тонкости в настройке:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
  <Resource auth="Application" 
            name="jdbc/cs" 
            type="oracle.jdbc.pool.OracleConnectionPoolDataSource" 
            debug="0" />
  <ResourceParams name="jdbc/cs">
    <parameter>
      <name>factory</name>
      <value>oracle.jdbc.pool.OracleDataSourceFactory</value>
    </parameter>
    <parameter>
      <name>validationQuery</name>
      <value>select 'x' from dual</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:oracle:thin:<user>/<password>@<host>: 1521 :<SID></value>
    </parameter>
    <parameter>
      <name>CONNPOOL_MIN_LIMIT</name>
      <value> 2 </value>
    </parameter>
    <parameter>
      <name>CONNPOOL_MAX_LIMIT</name>
      <value> 20 </value>
    </parameter>
    <parameter>
      <name>CONNPOOL_INCREMENT</name>
      <value> 1 </value>
    </parameter>
    <parameter>
      <name>CONNPOOL_TIMEOUT</name>
      <value> 5000 </value>
    </parameter>
    <parameter>
      <name>CONNPOOL_NOWAIT</name>
      <value>false</value>
    </parameter>
  </ResourceParams>

В Java:

Код: plaintext
1.
2.
3.
4.
5.
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource pool = (DataSource) envContext.lookup("jdbc/cs");

Connection con = pool.getConnection();
...
Рейтинг: 0 / 0
Не работает DataSource в Web-приложении. Что исправить?
    #32631909
Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Д
Гость
Всё равно не работает коннект к Oracle, не может сделать Connection.

org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null', cause: null
...
Рейтинг: 0 / 0
Не работает DataSource в Web-приложении. Что исправить?
    #32977266
Denis PopovЯ могу лишь свой показать, были какие-то там тонкости в настройке:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
  <Resource auth="Application" 
            name="jdbc/cs" 
            type="oracle.jdbc.pool.OracleConnectionPoolDataSource" 
            debug="0" />
  <ResourceParams name="jdbc/cs">
    <parameter>
      <name>factory</name>
      <value>oracle.jdbc.pool.OracleDataSourceFactory</value>
    </parameter>
    <parameter>
      <name>validationQuery</name>
      <value>select 'x' from dual</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:oracle:thin:<user>/<password>@<host>: 1521 :<SID></value>
    </parameter>
    <parameter>
      <name>CONNPOOL_MIN_LIMIT</name>
      <value> 2 </value>
    </parameter>
    <parameter>
      <name>CONNPOOL_MAX_LIMIT</name>
      <value> 20 </value>
    </parameter>
    <parameter>
      <name>CONNPOOL_INCREMENT</name>
      <value> 1 </value>
    </parameter>
    <parameter>
      <name>CONNPOOL_TIMEOUT</name>
      <value> 5000 </value>
    </parameter>
    <parameter>
      <name>CONNPOOL_NOWAIT</name>
      <value>false</value>
    </parameter>
  </ResourceParams>

В Java:

Код: plaintext
1.
2.
3.
4.
5.
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource pool = (DataSource) envContext.lookup("jdbc/cs");

Connection con = pool.getConnection();
...
Рейтинг: 0 / 0
Не работает DataSource в Web-приложении. Что исправить?
    #32980112
risfek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикрутил пул.
на всякий решил написать. Глядишь кто еще решит помучиться с томкатом5
Поставил:
jdk1.5.0
jre1.5.0
jakarta-tomcat-5.5.7

Tomcat_5_5\conf\server.xml:
Код: plaintext
1.
<Host name="localhost" debug="0" appBase="P:\TS" unpackWARs="true">

Tomcat_5_5\conf\Catalina\localhost\kop1.xml:
(Потому как: conf/server.xml file cannot be reloaded without restarting Tomcat. Please note that for tomcat 5, unlike tomcat 4.x, it is NOT recommended to place <Context> elements directly in the server.xml file.)


Код: plaintext
1.
2.
3.
4.
5.
6.
<Context path="/kop1" docBase="KOP1" debug="9" reloadable="true">

<Resource name="DB2DB" 
auth="Container" 
type="javax.sql.DataSource" 
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
Tomcat 5.5.4 uses "org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
username="user"
password="name"
driverClassName="COM.ibm.db2.jdbc.app.DB2Driver"
url="jdbc:db2:XXXXXX"
maxWait="-1" 
removeAbandoned="true" 
removeAbandonedTimeout="60" 
logAbandoned="true"/>

</Context>

KOP1\WEB-INF\web.xml:
Код: plaintext
1.
2.
3.
4.
5.
6.
<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>DB2DB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

Страничка:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<%@ page contentType="text/html; charset=windows-1251" language="java"  import ="javax.naming.Context,
                                                                               javax.naming.InitialContext,
                                                                               javax.sql.DataSource,
                                                                               java.sql.Connection" %>
<html>
<head>
<title> </title>
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<body >
<%  
    Connection conn =  null ;
     try {
        
        Context ctx =  new  InitialContext();
        DataSource ds = (DataSource)ctx.lookup("java:comp/env/DB2DB");
         if  (ds !=  null ) conn = ds.getConnection();
%>
Ура
<%
    }
     finally 
    {
        conn.close();
    }
%>
</body>
</html>
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Не работает DataSource в Web-приложении. Что исправить?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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