JNDI is not tied to Tomcat, but you have to set the datasource inside
the container (for example Tomcat).
In Tomcat, in order to set a datasource inside the application you have
to deploy with your application the following "context.xml" file inside
the "meta-inf" directory:

<Context path="/ApplicationContextPath">
  <Resource name="jdbc/DatabaseSource" auth="Container"
type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/DatabaseSource">
    <parameter>
      <name>maxWait</name>
      <value>5000</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>100</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>manager</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:oracle:thin:@127.0.0.1:1521:OracleDB</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>20</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>system</value>
    </parameter>
  </ResourceParams>
 
</Context>
If you use an Oracle DB.

Note that:
- this datasource is available only for the application and not for all
Tomcat applications.
If you want to use a global datasource you can use the Tomcat web
amministration tool.

- You have to know the url of the DB server. But you can set it using
the Tomcat web amministration tool.

BR
/Amleto



-----Messaggio originale-----
Da: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Inviato: marted́ 21 settembre 2004 11.32
A: [EMAIL PROTECTED]
Oggetto: Re: Assigning a DataSource to a Business Delegate on startup


> you can use JNDI to get a DataSource (if you use tomcat see tomcat 
> documentation in order to set the datasource). Here an example code to

> use inside the singleton object:
>
> //Get DB from JNDI
> try {
>       Context initCtx = new InitialContext();
>       Context envCtx = (Context) initCtx.lookup("java:comp/env");
>       DataSource dataSource = (DataSource) 
> envCtx.lookup("jdbc/DatabaseSource");
>
> } catch ( NamingException e ) {
>       //Handle Source Code Exception
> }
>

This is a nice solution, but I would like to use the DataSource
configuration in struts-config.xml. I noticed that there is the
"ConfigHelper.getDataSource()" method to get the default data source,
but I want to use a DataSource that I mapped with a key. By the way, the
solution above is not too tied to Tomcat? What if I want to distribute
my application? Do I have to configure Tomcat on the other machine? Ciao
Antonio Petrelli

>
>
>
> -----Messaggio originale-----
> Da: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Inviato: marted́ 21 settembre 2004 11.11
> A: [EMAIL PROTECTED]
> Oggetto: Assigning a DataSource to a Business Delegate on startup
>
>
> Hello there,
> is there a way I can assign a DataSource to a singleton object (i.e. a

> Business Delegate) on startup? I know there is the "getDataSource" 
> protected method in Action, but I have to pass the DataSource itself 
> on each call of the delegate, or I have to check whether it has been 
> already passed or not. Maybe it could be done with a plugin. In this 
> case, is there already a package that I could use? And if not, how can

> I access to a DataSource outside the Action class? Thanks in advance 
> Ciao Antonio Petrelli
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to