Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > web.xml


Автор: table 7.12.2010, 17:38
web.xml
Код

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5">


    <resource-ref>
        <res-ref-name>jdbc/Pool</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>    

</web-app>

server.xml
Код

    <Resource
        name="jdbc/Pool"
        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://localhost/db1"
        username="user"
        password="password"
        maxActive="20"
    />  

код
Код

DataSource ds = (DataSource) jndi.lookup("java:comp/env/jdbc/Pool");


так работает, мне надо оставить в покое server.xml, только средствами сервлета подключится к базе
web.xml
Код

   <resource-ref> 
      <res-ref-name>jdbc/Pool</res-ref-name> 
      <res-type>javax.sql.DataSource</res-type> 
      <init-param driver-name="org.postgresql.Driver"/> 
      <init-param url="jdbc:postgresql://localhost/db1"/> 
      <init-param user="user"/> 
      <init-param password="password"/> 
      <init-param max-connections="20"/>
      <res-auth>Container</res-auth>
      <res-sharing-scope>Shareable</res-sharing-scope> 
   </resource-ref> 

так не пашет, эклипс ругается на <init-param

Автор: graycrocodile 7.12.2010, 19:50
table, я лично делаю так:
context.xml
Код

<Resource name="jdbc/ResName" auth="Container" type="javax.sql.DataSource" maxActive="50" 
maxIdle="30" maxWait="5000" scope="Shareable" username="someuser" password="somepass" 
driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost/somedatabase" /> 

а потом просто
Код

InitialContext cxt = new InitialContext();
DataSource ds = (DataSource) cxt.lookup("java:comp/env/jdbc/ResName");

Автор: table 7.12.2010, 21:03
У меня нет доступа к директории conf, есть только для webapps.  Либо надо все сделать в web.xml, либо здесь сразу как то:
Код

DataSource ds = (DataSource) jndi.lookup("java:comp/env/jdbc/Pool");

Автор: graycrocodile 7.12.2010, 21:41
Цитата(table @  7.12.2010,  21:03 Найти цитируемый пост)
У меня нет доступа к директории conf, есть только для webapps.  Либо надо все сделать в web.xml, либо здесь сразу как то:

context.xml лежит в соседней с WEB-INF папке в META-INF

Автор: table 7.12.2010, 22:20
Офтоп: а для чего папка META-INF, просто когда создаю новый проект, он по умолчанию создается, я его сразу удаляю. Да, внутри также есть context.xml 

Автор: graycrocodile 8.12.2010, 12:44
Цитата(table @  7.12.2010,  22:20 Найти цитируемый пост)
Офтоп: а для чего папка META-INF, просто когда создаю новый проект, он по умолчанию создается, я его сразу удаляю. Да, внутри также есть context.xml  

удалять его не стоит.
там можно располагать дескрипторы ресурсов, настойки контекста, его параметры.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)