Od Tomcatu 6 dokonce už není nutné dělat JNDI vyhledávání, stačí
do servletu dát

import javax.sql.DataSource;
import javax.annotation.Resource;

public class NejakyServlet extends HttpServlet {

@Resource(name="jdbc/moje")
    private DataSource pool;
...
}

a Tomcat to sám injektuje. Samozřejmě je pořád nutné mít
ve WEB-INF/web.xml odkaz

<resource-ref>
     <res-ref-name>jdbc/moje</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
</resource-ref>

a v META-INF/context.xml případně v 
$CATALINA_BASE/conf/Catalina/localhost/_aplikace_.xml
spojení na databázi, např.

<Context>
    <Resource name="jdbc/moje" auth="Container" type="javax.sql.DataSource"
            driverClassName="org.apache.derby.jdbc.ClientDriver"
            username="nekdo" password="heslo"
            url="jdbc:derby://localhost:1527/nejakadb"
    />
</Context>

Makub

Tomas Hubalek napsal(a):
Elegantni reseni (podle meho) je JNDI na data sourcy. V produkcnim mate datasource se stejnym jmenem jako na developmentu, ale jinymi konfiguracnimi udaji.
Tom

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Ing. Jan Novotný
Sent: Friday, April 25, 2008 2:46 PM
To: Java
Subject: Re: Testovací vs produkční databáze

Buď je možné buildovat odlišné artefakty pro různé stroje (např. přes
profily v Mavenu) a nebo pokud byste chtěl mít stejný artefakt pro
různé stroje je možné to dělat např. tak, že při inicializaci se budou
nahrávat data z properties (nebo z XML, to už je jedno) souborů,
obsahující konfiguraci pro různé stroje. Property soubory mohou být
buď na disku nabo na classpath. Odlišení toho, že na testovacím
prostředí se nahraje jeden property soubor s konfiguračními daty a na
ostré jiný je možné zajistit buď odlišením přes parametr javy (při
spouštění javy dodat na commandline např. -Dinstance=test a potom
System.getProperty("test")) a nebo můžete jako odlišovací String
použít název stroje, na kterém je aplikace spuštěná tímto kódem:

InetAddress addr = InetAddress.getLocalHost();
String thisMachineName = addr.getHostName();

Doufám, že odpovídám na to, na co jste se ptal. Už párkrát se mi
stalo, že jsem byl trochu "mimo" :-)

S pozdravem,
Honza Novotný

2008/4/25 Pavel Zelenka <[EMAIL PROTECTED]>:
Zdravím,

vyvvíjím webovou aplikaci (JSF, JPA, Tomcat). Pro vývoj a testy
potřebuji
používat testovací databázi. Po deploymentu na produkční server
potřebuji,
aby aplikace používala již ostrou databázi.
Jak toto řešíte v praxi?

Díky

Pavel Zelenka



--
--------------------------------------------------------------
Ing. Jan Novotný
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
http://blog.novoj.net
Myšlenky dne otce Fura
--------------------------------------------------------------


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno             Martin Kuba
Institute of Computer Science    email: [EMAIL PROTECTED]
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem