You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by JS <sm...@dcs.kcl.ac.uk> on 2003/04/10 19:37:14 UTC
Getting desperate!! javax.naming.NamingException username is required]
Hi there Guys,
I'm pretty desperate on this now.... been searching the archives for the
last 2 hours. Someone out there must know whats going on here.Your help is greatly appreciated.
I get the javax.naming.NamingException chucked out me saying a "username
is required" even though I have set this up in server.xmlThe line it moans about in my servlet is highlighted below. Ive included
server.xml, web.xml and catalina.out.
Thanks again
JS
public class SetupServlet extends HttpServlet {
public void init(ServletConfig config)
throws ServletException
{
//initialise the database connectionpool for the DCSCoreDB
super.init(config);
try {
InitialContext initContext = new InitialContext();
log("-initContext");
if (initContext == null) log("BOOM - initContext = null");
Context envContext = (Context)initContext.lookup("java:/comp/env");
log("- envContext");
if (envContext == null) log ("BOOM - No Context");
!!!!!!!!!!Dodgy line!!!!!!
DataSource ds = (DataSource)envContext.lookup("jdbc/StudentDB");
log("- DataSource");
if (ds != null) {
Connection conn = ds.getConnection();
log("- Connection");
if (conn != null) {
log("- Connection OK");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM tblStudents");
if (rs.next()); {
System.out.println(rs);
}
conn.close();
log("- Connection close");
}
else
log("- BOOM Datasource null");
} }
catch (SQLException sqle) {
sqle.printStackTrace();
}
catch (NamingException ne) {
ne.printStackTrace();
}
}
Catalina.out says this;
Java Web Services Developer Pack/1.0_01-fcs
javax.naming.NamingException: DbcpDataSourceFactory: username is required
at
org.apache.naming.factory.DbcpDataSourceFactory.getObjectInstance(DbcpDataSourceFactory.java:208) at
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:177) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:301)
at org.apache.naming.NamingContext.lookup(NamingContext.java:835)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
at project.SetupServlet.init(SetupServlet.java:26)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:919) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:811)
This is the relevant part of server.xml
<!-- Insert <Context> Elements Here As Needed -->
<Context
path="/mydcs"
docBase="mydcs"
debug="0">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_mydcs_log."
suffix=".txt"
timestamp="true"/>
<!-- setup pool for the StudentDB -->
<Resource name="jdbc/StudentDB"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/StudentDB">
<parameter>
<name>factory></name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- set up pool parameters -->
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>4</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- setup database details -->
<parameter>
<name>username</name>
<value>jason</value>
</parameter>
<parameter>
<name>password</name>
<value>pword</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>easysoft.sql.jobDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:easysoft:StudentDB</value>
</parameter>
</ResourceParams>
<!-- Create another pool for DCSCore Database -->
<Resource name="jdbc/DCSCoreDB"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/DCSCoreDB">
<parameter>
<name>factory></name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- set up pool parameters -->
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>4</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- setup database details -->
<parameter>
<name>username</name>
<value>jason</value>
</parameter>
<parameter>
<name>password</name>
<value>pword</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>easysoft.sql.jobDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:easysoft:DCSCoreDB</value>
</parameter>
</ResourceParams>
</Context>
Web.xml is;
<!-- define resources used in webapp -->
<resource-ref>
<description>A resource reference to a factory for java.sql.Connection
instances that are used to talk to the StudentDatabase that is configured
in server.xml
</description>
<res-ref-name>jdbc/StudentDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<description>A resource reference to a factory for java.sql.Connection
instances that are used to talk to the DCSCoreDB databasee that is
configured in server.xml
</description>
<res-ref-name>jdbc/DCSCoreDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
-------- Original Message --------
Subject: [Fwd: javax.naming.NamingException username is required]
From: "JS" <sm...@dcs.kcl.ac.uk>
Date: Thu, April 10, 2003 5:23 pm
To: <to...@jakarta.apache.org>
Hi there,
I'm getting this error for some reason, and I have already defined the
parameters in server.xml. I also made a <resource-ref> parameter in
web.xml
Any one encountered this before?
Cheers
JS
--------------------------------------------------------------------- To
unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org For
additional commands, e-mail: tomcat-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
Re: Gotcha!! javax.naming.NamingException username is required]
Posted by JS <sm...@dcs.kcl.ac.uk>.
Hi John,
thanks for your help. You were right with this tho. The driver I'm using
prefers the username parameter to be listed as "user" for some reason.
Fine by me, but I completely missed this detail in the docs.
Other problem was that the driver I'm using requires a server to be
running in the background, which I hadnt configured properly.
Tomcat and I are at one now.....so I hope ;-)
Thanks again.
>
> Have you tried playing around with the username parameter? It could be
> that it should really be "user" and not "username", or even "Username"
> or "UserName". I had a lot of problems this way with the Microsoft
> driver. I know that's not the driver you are using, but if its
> critical it might be worth 10 or 15 minutes of experimentation.
>
> John
>
> On Thu, 10 Apr 2003 18:37:14 +0100 (BST), JS <sm...@dcs.kcl.ac.uk>
> wrote:
>
>> Hi there Guys,
>> I'm pretty desperate on this now.... been searching the archives for
>> the last 2 hours. Someone out there must know whats going on here.Your
>> help is greatly appreciated.
>>
>> I get the javax.naming.NamingException chucked out me saying a
>> "username is required" even though I have set this up in server.xmlThe
>> line it moans about in my servlet is highlighted below. Ive included
>> server.xml, web.xml and catalina.out.
>> Thanks again
>> JS
>>
>> public class SetupServlet extends HttpServlet {
>>
>> public void init(ServletConfig config)
>> throws ServletException
>> {
>>
>> //initialise the database connectionpool for the DCSCoreDB
>> super.init(config);
>> try {
>> InitialContext initContext = new InitialContext();
>> log("-initContext");
>> if (initContext == null) log("BOOM - initContext = null");
>> Context envContext = (Context)initContext.lookup("java:/comp/env");
>> log("-envContext");
>> if (envContext == null) log ("BOOM - No Context");
>>
>> !!!!!!!!!!Dodgy line!!!!!!
>> DataSource ds = (DataSource)envContext.lookup("jdbc/StudentDB");
>> log("-DataSource");
>> if (ds != null) {
>> Connection conn = ds.getConnection();
>> log("-Connection");
>> if (conn != null) {
>> log("-Connection OK");
>> Statement stmt = conn.createStatement();
>> ResultSet rs = stmt.executeQuery("SELECT * FROM tblStudents"); if
>> (rs.next()); {
>> System.out.println(rs);
>> }
>> conn.close();
>> log("-Connection close");
>> }
>> else
>> log("-BOOM Datasource null");
>> } }
>> catch (SQLException sqle) {
>> sqle.printStackTrace();
>> }
>> catch (NamingException ne) {
>> ne.printStackTrace();
>> }
>> }
>>
>> Catalina.out says this;
>> Java Web Services Developer Pack/1.0_01-fcs
>> javax.naming.NamingException: DbcpDataSourceFactory: username is
>> required
>> at
>> org.apache.naming.factory.DbcpDataSourceFactory.getObjectInstance(DbcpDataSourceFactory.java:208)>>
>>
>>
>> at
>> org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:177)>>
>>
>>
>> at
>> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:301)
>> at org.apache.naming.NamingContext.lookup(NamingContext.java:835) at
>> org.apache.naming.NamingContext.lookup(NamingContext.java:181) at
>> org.apache.naming.NamingContext.lookup(NamingContext.java:822) at
>> org.apache.naming.NamingContext.lookup(NamingContext.java:194) at
>> project.SetupServlet.init(SetupServlet.java:26)
>> at
>> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:919)>>
>>
>>
>> at
>> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:811)
>>
>>
>> This is the relevant part of server.xml
>>
>> <!-- Insert <Context> Elements Here As Needed -->
>> <Context
>> path="/mydcs"
>> docBase="mydcs"
>> debug="0">
>> <Logger className="org.apache.catalina.logger.FileLogger"
>> prefix="localhost_mydcs_log."
>> suffix=".txt"
>> timestamp="true"/>
>>
>> <!-- setup pool for the StudentDB -->
>> <Resource name="jdbc/StudentDB"
>> auth="Container"
>> type="javax.sql.DataSource"/>
>>
>> <ResourceParams name="jdbc/StudentDB">
>> <parameter>
>> <name>factory></name>
>> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
>> </parameter>
>>
>> <!-- set up pool parameters -->
>> <parameter>
>> <name>maxActive</name>
>> <value>10</value>
>> </parameter>
>> <parameter>
>> <name>maxIdle</name>
>> <value>4</value>
>> </parameter>
>> <parameter>
>> <name>maxWait</name>
>> <value>10000</value>
>> </parameter>
>>
>> <!-- setup database details -->
>> <parameter>
>> <name>username</name>
>> <value>jason</value>
>> </parameter>
>> <parameter>
>> <name>password</name>
>> <value>pword</value>
>> </parameter>
>> <parameter>
>> <name>driverClassName</name>
>> <value>easysoft.sql.jobDriver</value>
>> </parameter>
>> <parameter>
>> <name>url</name>
>> <value>jdbc:easysoft:StudentDB</value>
>> </parameter>
>>
>> </ResourceParams>
>>
>> <!-- Create another pool for DCSCore Database -->
>> <Resource name="jdbc/DCSCoreDB"
>> auth="Container"
>> type="javax.sql.DataSource"/>
>>
>> <ResourceParams name="jdbc/DCSCoreDB">
>> <parameter>
>> <name>factory></name>
>> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
>> </parameter>
>>
>> <!-- set up pool parameters -->
>> <parameter>
>> <name>maxActive</name>
>> <value>10</value>
>> </parameter>
>> <parameter>
>> <name>maxIdle</name>
>> <value>4</value>
>> </parameter>
>> <parameter>
>> <name>maxWait</name>
>> <value>10000</value>
>> </parameter>
>>
>> <!-- setup database details -->
>> <parameter>
>> <name>username</name>
>> <value>jason</value>
>> </parameter>
>> <parameter>
>> <name>password</name>
>> <value>pword</value>
>> </parameter>
>> <parameter>
>> <name>driverClassName</name>
>> <value>easysoft.sql.jobDriver</value>
>> </parameter>
>> <parameter>
>> <name>url</name>
>> <value>jdbc:easysoft:DCSCoreDB</value>
>> </parameter>
>>
>> </ResourceParams>
>>
>>
>> </Context>
>>
>> Web.xml is;
>> <!-- define resources used in webapp -->
>> <resource-ref>
>> <description>A resource reference to a factory for
>> java.sql.Connection instances that are used to talk to the
>> StudentDatabase that is
>> configured
>> in server.xml
>> </description>
>> <res-ref-name>jdbc/StudentDB</res-ref-name>
>> <res-type>javax.sql.DataSource</res-type>
>> <res-auth>Container</res-auth>
>> </resource-ref>
>>
>> <resource-ref>
>> <description>A resource reference to a factory for
>> java.sql.Connection instances that are used to talk to the DCSCoreDB
>> databasee that is configured in server.xml
>> </description>
>> <res-ref-name>jdbc/DCSCoreDB</res-ref-name>
>> <res-type>javax.sql.DataSource</res-type>
>> <res-auth>Container</res-auth>
>> </resource-ref>
>>
>> -------- Original Message --------
>> Subject: [Fwd: javax.naming.NamingException username is required]
>> From: "JS" <sm...@dcs.kcl.ac.uk>
>> Date: Thu, April 10, 2003 5:23 pm
>> To: <to...@jakarta.apache.org>
>>
>> Hi there,
>> I'm getting this error for some reason, and I have already defined the
>> parameters in server.xml. I also made a <resource-ref> parameter in
>> web.xml
>>
>> Any one encountered this before?
>>
>> Cheers
>> JS
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org For
>> additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org For
>> additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>
>>
>
>
>
> --
> Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org