Problem solved.

The missing glue is, if you define Realm and DataSource inside the Context, 
don`t forget to
specify 

        localDataSource="true"

        When the realm is nested inside a Context element, this allows the 
realm to use a DataSource defined for the Context rather than a global 
DataSource. If not specified, the default is false: use a global DataSource.

Thanks to Alessandro

regards Oliver

> -----Ursprüngliche Nachricht-----
> Von: Walter, Oliver (BR/ICI3) [mailto:[EMAIL PROTECTED] 
> Gesendet: Montag, 29. Januar 2007 17:42
> An: Tomcat Users List
> Betreff: AW: datasource-realm troubles
> 
> Hello David,
> 
> thanks for the reply. We are talking about your 2. description.
> 
> The file is named "context.xml" and it is stored in the war`s META-INF
> directory. 
> 
> The full error output is:
> 106627 [http-8080-Processor24] DEBUG 
> com.jmangos.beans.LoginBean  - Validating given password.
> 106627 [http-8080-Processor24] DEBUG 
> com.jmangos.persistance.hibernate.AccountDAO  - finding 
> Account instance with property: username, value: test7
> 106827 [http-8080-Processor24] ERROR 
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].
> [/jmangos]  - Exception performing authentication
> javax.naming.NameNotFoundException: Name jdbc is not bound in 
> this Context
>       at 
> org.apache.naming.NamingContext.lookup(NamingContext.java:769)
>       at 
> org.apache.naming.NamingContext.lookup(NamingContext.java:152)
>       at 
> org.apache.catalina.realm.DataSourceRealm.open(DataSourceRealm
> .java:401)
>       at 
> org.apache.catalina.realm.DataSourceRealm.authenticate(DataSou
> rceRealm.java:282)
>       at 
> org.apache.catalina.authenticator.FormAuthenticator.authentica
> te(FormAuthenticator.java:257)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Aut
> henticatorBase.java:416)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:126)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:105)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java:107)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap
> ter.java:148)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Process
> or.java:869)
>       at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHa
> ndler.processConnection(Http11BaseProtocol.java:664)
>       at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolT
> cpEndpoint.java:527)
>       at 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(Le
> aderFollowerWorkerThread.java:80)
>       at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:684)
>       at java.lang.Thread.run(Thread.java:595) 
> 
> As you can see in the second line:
> 106627 [http-8080-Processor24] DEBUG 
> com.jmangos.persistance.hibernate.AccountDAO  - finding 
> Account instance with property: username, value: test7
> Hibernate is working well using the same datasource.
> 
> 
> My full context.xml is:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> 
> <Context path="/jmangos" docBase="jmangos" debug="5" reloadable="true"
>       crossContext="false">
>               
>       <Resource name="jdbc/mangos" auth="Container"
>               type="javax.sql.DataSource" maxActive="10" 
> maxIdle="2" maxWait="10000"
>               username="" password=""
>               driverClassName="com.mysql.jdbc.Driver"
>               
> url="jdbc:mysql://localhost:3306/realmd?autoReconnect=true" />
>       
>       <Realm 
> className="org.apache.catalina.realm.DataSourceRealm" debug="4"
>               dataSourceName="jdbc/mangos"
>               userTable="account" 
>               userNameCol="username" 
>               userCredCol="password"
>               userRoleTable="account" 
>               roleNameCol="gmlevel" />
> </Context>
> 
> regards Oliver
> 
> > -----Ursprüngliche Nachricht-----
> > Von: David Smith [mailto:[EMAIL PROTECTED] 
> > Gesendet: Montag, 29. Januar 2007 17:11
> > An: Tomcat Users List
> > Betreff: Re: datasource-realm troubles
> > 
> > I would guess from the outset that your "Context.xml" file 
> isn't being
> > used.  Where are your putting it and what are you naming it?  
> > What's the
> > name of your webapp when deployed?
> > 
> > Quick checks:
> > 
> > 1. It has to be named to match your webapp if your are storing it in
> > Catalina/localhost and deploying an expanded webapp.  If 
> the webapp is
> > named fubar, then the file should be named fubar.xml.
> > 
> > 2. If deploying a .war file, it has to be named context.xml 
> > (note: case
> > is important) and stored in the war files META-INF directory.
> > 
> > 
> > --David
> > 
> > Walter, Oliver (BR/ICI3) wrote:
> > 
> > >Hello,
> > >
> > >i have some trouble using a datasource realm in tomcat 5.5.20, jdk
> > >1.5.0_09.
> > >
> > >In META-INF/Context.xml i defined a datasource:
> > >
> > ><Resource name="jdbc/mangos" auth="Container"
> > >           type="javax.sql.DataSource" maxActive="10" maxIdle="2"
> > >maxWait="10000"
> > >           username="" password=""
> > >           driverClassName="com.mysql.jdbc.Driver"
> > >   
> > >url="jdbc:mysql://localhost:3306/realmd?autoReconnect=true" />
> > >
> > >and in web.xml a resource reference:
> > >
> > ><resource-ref>
> > >   <description>DB Connection</description>
> > >   <res-ref-name>jdbc/mangos</res-ref-name>
> > >   <res-type>javax.sql.DataSource</res-type>
> > >   <res-auth>Container</res-auth>
> > ></resource-ref>
> > >
> > >With hibernate everything works fine, no problems, but if 
> i define a
> > >datasource realm in Context.xml
> > >
> > ><Realm className="org.apache.catalina.realm.DataSourceRealm" 
> > debug="4"
> > >           dataSourceName="jdbc/mangos"
> > >           userTable=... />
> > >
> > >it can`t find the resource name:
> > >
> > >javax.naming.NameNotFoundException: Name jdbc is not bound in this
> > >Context
> > >   at
> > >org.apache.naming.NamingContext.lookup(NamingContext.java:769)
> > >   at
> > >org.apache.naming.NamingContext.lookup(NamingContext.java:152)
> > >   at
> > >org.apache.catalina.realm.DataSourceRealm.open(DataSourceReal
> > m.java:401)
> > >   at
> > >org.apache.catalina.realm.DataSourceRealm.authenticate(DataSo
> > urceRealm.j
> > >ava:282)
> > >   ...
> > >
> > >I tried already the following namings, jdbc/mangos,
> > >java:comp/env/jdbc/mangos, mangos, java:/comp/env/jdbc/mangos
> > >with no luck.
> > >
> > >I can workaround this issue, when defining the resource in 
> server.xml
> > ><GlobalNamingResources>
> > >and create a <ResourceLink name="jdbc/mangos" global="jdbc/mangos"
> > >type="javax.sql.DataSource" />
> > >in Context.xml, but i would prefer, doing Realm and Datasource
> > >definition together in Context.xml.
> > >
> > >
> > >The second issue i run into is programming my webapp against 
> > the realm
> > >interface. I want to built
> > >up the Navigation Panel dynamically based on the users 
> asigned roles,
> > >but when i try to access
> > >GenericPrincipal i get "java.lang.NoClassDefFoundError:
> > >org/apache/catalina/realm/GenericPrincipal".
> > >
> > >I also can workaround this issue by copying the catalina into my
> > >webapp`s classpath (WEB-INF/lib/),
> > >but i`m pretty this is not correct.
> > >
> > >I would be appreciate for any help.
> > >
> > >Regards Oliver
> > >
> > >
> > >
> > >
> > >
> > 
> >---------------------------------------------------------------------
> > >To start a new topic, e-mail: users@tomcat.apache.org
> > >To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >  
> > >
> > 
> > 
> > 
> ---------------------------------------------------------------------
> > To start a new topic, e-mail: users@tomcat.apache.org
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to