Hi,
I have a problem with configuring the DBCP and Oracle. My server.xml is:
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Service name="Tomcat-Standalone">
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="-1"/>
<!-- Define an SSL HTTP/1.1 Connector on port 8443 -->
<!--
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true"
acceptCount="10" debug="0" scheme="https" secure="true">
<Factory className="org.apache.catalina.net.SSLServerSocketFactory"
clientAuth="false" protocol="TLS"/>
</Connector>
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
port="8009" minProcessors="5" maxProcessors="75"
acceptCount="10" debug="0"/>
<Engine name="Standalone" defaultHost="localhost" debug="0">
<!-- Global logger unless overridden at lower levels -->
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt"
timestamp="true"/>
<!-- Because this Realm is here, an instance will be shared globally
-->
<Realm className="org.apache.catalina.realm.MemoryRealm" />
<!-- Replace the above Realm with one of the following to get a Realm
stored in a database and accessed via JDBC -->
<!-- Define the default virtual host -->
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log."
suffix=".txt"
pattern="common"/>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<DefaultContext reloadable="true">
<Resource name="jdbc/ImedgeDB" auth="CONTAINER"
type="javax.sql.DataSource" />
<!-- type="oracle.jdbc.pool.OracleConnectionCacheImpl"/> -->
<ResourceParams name="jdbc/ImedgeDB">
<parameter><name>factory</name><value>oracle.jdbc.pool.OracleDataSourceFacto
ry</value>
</parameter>
<parameter> <name>userName</name> <value>i11dbs</value>
</parameter>
<parameter><name>password</name><value>i11db5</value>
</parameter>
<parameter> <name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value> </parameter>
<parameter><name>url</name>
<value>jdbc:oracle:thin:@sunlab2:1521:chcity</value></parameter>
</ResourceParams>
</DefaultContext>
<!-- Tomcat Manager Context -->
<Context path="/manager" docBase="manager"
debug="0" privileged="true"/>
<!-- Tomcat Examples Context -->
<Context path="/examples" docBase="examples" debug="0"
reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_examples_log." suffix=".txt"
timestamp="true"/>
<Ejb name="ejb/EmplRecord" type="Entity"
home="com.wombat.empl.EmployeeRecordHome"
remote="com.wombat.empl.EmployeeRecord"/>
<Environment name="maxExemptions" type="java.lang.Integer"
value="15"/>
<Parameter name="context.param.name" value="context.param.value"
override="false"/>
<Resource name="mail/Session" auth="Container"
type="javax.mail.Session"/>
<ResourceParams name="mail/Session">
<parameter>
<name>mail.smtp.host</name>
<value>localhost</value>
</parameter>
</ResourceParams>
</Context>
</Host>
</Engine>
</Service>
<!-- Define an Apache-Connector Service -->
<Service name="Tomcat-Apache">
<Connector className="org.apache.catalina.connector.warp.WarpConnector"
port="8008" minProcessors="5" maxProcessors="75"
enableLookups="true" appBase="webapps"
acceptCount="10" debug="0"/>
<!-- Replace "localhost" with what your Apache "ServerName" is set to
-->
<Engine className="org.apache.catalina.connector.warp.WarpEngine"
name="Apache" debug="0">
<!-- Global logger unless overridden at lower levels -->
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="apache_log." suffix=".txt"
timestamp="true"/>
<!-- Because this Realm is here, an instance will be shared globally
-->
<Realm className="org.apache.catalina.realm.MemoryRealm" />
</Engine>
</Service>
</Server>
My web.xml is:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>
IMEDGEAdmin
</servlet-name>
<servlet-class>
com.imedge.admin.IMOMInit
</servlet-class>
<init-param>
<param-name>serverpath</param-name>
<param-value>c:\tomcat 4.0</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>
IMEDGEAdmin
</servlet-name>
<url-pattern>
/Imedge/Admin
</url-pattern>
</servlet-mapping>
<!-- I add these lines -->
<resource-ref>
<description>Imedge ph 3 Database for Admin
Applications</description>
<res-ref-name>jdbc/ImedgeDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
In My Jsp page I use the following code:
<%@ page import="javax.naming.Context" %>
<%@ page import=" javax.naming.InitialContext" %>
<%@ page import=" javax.sql.DataSource" %>
<%@ page import=" java.sql.Connection" %>
<%@ page import="java.sql.*" %>
<%
Context ctx = new InitialContext();
if (ctx ==null)
throw new Exception("Oh my God - No context");
Context envCtx = (Context) ctx.lookup("java:/comp/env");
DataSource ds = (DataSource)
envCtx.lookup("jdbc/ImedgeDB");
Connection conn = ds.getConnection();
ResultSet rs = conn.executeQuery("select table_name from
user_tables ");
OracleResultSet orars = (OracleResultSet)rs;
%>
The problem is : ds(datasource) is null; Anyone knows what is wrong here?
I get the error is:
java.lang.NullPointerException
at org.apache.jsp.testfam$jsp._jspService(testfam$jsp.java:93)
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
Any suggestion will be appreciated.
Eddie Liang
Database Architect
Phone: 630-810-9669 x253
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>