I still can't make it work.

My /opt/jakarta-tomcat-5.5.9/logs/catalina.out display this message

2005-04-23 08:48:21 org.apache.commons.modeler.Registry registerComponent
SEVERE: Null component Catalina:type=DataSource,path=/,host=192.168.1.251,class=javax.sql.DataSource,name="jdbc/testdatabase"


And maybe that is the problem.

I have seen somewhere else that the Context part with the Resource is moved to a file called <applicationname>.xml. Some say to place in <application>/META-INF, some say to place it in $CATALINA_HOME/conf/Catalina/localhost. I have tried both but it does not work for me.

When I remove the Context from my server.xml to a separate file - I see this when running Tomcat-Apache: No Host matches server name 192.168.1.251.

Thanks
Lars Nielsen Lind



David Smith wrote:

You should be doing this in your code:

Context initContext = null;
try {
initContext = new InitialContext() ;
} catch ( Exception e1 ) { //... do something with the trapped exception }
try {
DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/testdatabase");
} catch ( Exception e2) { //... do something -- log it }
// Store a reference to ds someplace where it can be used over and over and over.


Note the only thing I really changed is to make the type of initContext Context instead of InitialContext. This is mostly straight from the Tomcat 5.5 JNDI docs located here:

http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-resources-howto.html

--David


Lars Nielsen Lind wrote:

Hi.

I have some problems with Tomcat 5.5.9 Connection Pooling / JNDI / DBCP

When running my java component (se below) I receive this NamingException:

/NE: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial/

If I add this code:

System.setProperty("java.naming.factory.initial", "org.apache.naming.java.javaURLContextFactory");
System.setProperty("java.naming.factory.pkgs", "org.apache.naming");


to the constructor in the java component, I receive this exception:

/NE: Name java: is not bound in this Context/

What is wrong and what is the solution to the problem?

Thanks
Lars Nielsen Lind



I have copied the PostgreSQL driver, commons-pool.jar, commons-collections.jar and commons-dbcp.jar to the $CATALINA_HOME/common/lib folder.

I have done as specified in the JNDI Datasource HOW-TO.

*Server.xml*:

<Context path="/" debug="1" docBase="/opt/jakarta-tomcat-5.5.9/webapps/application/test">
<!-- PostgreSQL / JDBC / JNDI - ConnectionPooling -->
<Resource name="jdbc/testdatabase" auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost/testdatabase" username="dbmanager" password="123456" maxActive="20" maxIdle="10" maxWait="-1" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" />
</Context>



*Application Web.xml*:

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


*Java component*:

import java.sql.*;
import java.util.*;

import javax.naming.*;
import javax.sql.*;

public class ConnectionPool {
     private Connection conn;

   public ConnectionPool() {}

   public Connection getConnectionFromPool() {
       try {
           InitialContext initContext = null;
                     try {
               initContext = new InitialContext();
           } catch (Exception ex) {
               System.out.println("IC: " + ex);
           }

try {
DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/testdatabase");
conn = ds.getConnection();
} catch (SQLException se) {
System.out.println("DS: " + se);
}
} catch (NamingException ne) {
System.out.println("NE: " + ne.getMessage());
}
return conn;
}
---------------------------------------------------------------------
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