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