Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Не работает DataSource в Web-приложении. Что исправить? / 9 сообщений из 9, страница 1 из 1
29.07.2004, 19:59
    #32628130
Д
Д
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataSource в Web-приложении. Что исправить?
В 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
29.07.2004, 21:12
    #32628174
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataSource в Web-приложении. Что исправить?
Вот глянь: 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
30.07.2004, 13:53
    #32629371
Д
Д
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataSource в Web-приложении. Что исправить?
У меня этот файл создался сам (Tomcat создал), и в нём была прописана часть нужной информации.
Бардак какой-то.
Я добавил недостающую информацию туда, и DataSource заработал.
Кстати, в server.xml все параметры были прописаны, но этого оказалось мало.

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

Работающий DataSource - подключён к Sybase, неработающий - к Oracle.
...
Рейтинг: 0 / 0
30.07.2004, 14:39
    #32629539
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataSource в Web-приложении. Что исправить?
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
30.07.2004, 14:44
    #32629559
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataSource в Web-приложении. Что исправить?
Я могу лишь свой показать, были какие-то там тонкости в настройке:

Код: 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
02.08.2004, 17:18
    #32631909
Д
Д
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataSource в Web-приложении. Что исправить?
Всё равно не работает коннект к Oracle, не может сделать Connection.

org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null', cause: null
...
Рейтинг: 0 / 0
23.03.2005, 20:14
    #32977266
Не работает DataSource в Web-приложении. Что исправить?
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
25.03.2005, 10:22
    #32980112
risfek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataSource в Web-приложении. Что исправить?
Прикрутил пул.
на всякий решил написать. Глядишь кто еще решит помучиться с томкатом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
Форумы / Java [игнор отключен] [закрыт для гостей] / Не работает DataSource в Web-приложении. Что исправить? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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