tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vramanaj <vrama...@gmail.com>
Subject Re: How to access JNDI resources on Tomcat level
Date Tue, 01 Dec 2009 11:41:07 GMT

I have removed path and docbase from webapp.xml file. I have tried the db
connection from a servlet as below. I have gone through the josso source
codes. It is failing at below getDataSource function.

    protected DataSource getDataSource() throws SSOIdentityException {

        if (_datasource == null) {

            try {

                if (logger.isDebugEnabled()) logger.debug("[getDatasource()
: ]" + _dsJndiName);

                InitialContext ic = new InitialContext();
                _datasource = (DataSource) ic.lookup(_dsJndiName);

            } catch (NamingException ne) {
                logger.error("Error during DB connection lookup", ne);
                throw new SSOIdentityException(
                        "Error During Lookup\n" + ne.getMessage());
            }

        }

        return _datasource;
    }




Pid Ster wrote:
> 
> On 01/12/2009 10:36, vramanaj wrote:
>>
>> Full Stack Trace:
>> Dec 1, 2009 1:46:58 AM
>> org.josso.gateway.identity.service.store.db.DataSourceIdentityStore
>> getDataSource
>> SEVERE: Error during DB connection lookup
>> javax.naming.NameNotFoundException: Name jdbc is not bound in this
>> Context
>>          at
>> org.apache.naming.NamingContext.lookup(NamingContext.java:770)
>>          at
>> org.apache.naming.NamingContext.lookup(NamingContext.java:153)
>>          at
>> org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
>>          at javax.naming.InitialContext.lookup(InitialContext.java:392)
>>          at
>> org.josso.gateway.identity.service.store.db.DataSourceIdentityStore.getDataSource(DataSourceIdentityStore.java:85)
>>          at
>> org.josso.gateway.identity.service.store.db.DataSourceIdentityStore.getDBConnection(DataSourceIdentityStore.java:105)
>>          at
>> org.josso.gateway.identity.service.store.db.AbstractDBIdentityStore.loadCredentials(AbstractDBIdentityStore.java:125)
>>          at
>> org.josso.auth.scheme.AbstractAuthenticationScheme.getKnownCredentials(AbstractAuthenticationScheme.java:166)
>>          at
>> org.josso.auth.scheme.UsernamePasswordAuthScheme.authenticate(UsernamePasswordAuthScheme.java:160)
>>          at
>> org.josso.auth.AuthenticatorImpl.check(AuthenticatorImpl.java:69)
>>          at
>> org.josso.gateway.identity.service.SSOIdentityProviderImpl.login(SSOIdentityProviderImpl.java:201)
>>          at
>> org.josso.gateway.identity.service.SSOIdentityProviderImpl.assertIdentity(SSOIdentityProviderImpl.java:274)
>>          at
>> org.josso.gateway.SSOGatewayImpl.assertIdentity(SSOGatewayImpl.java:332)
>>          at
>> org.josso.gateway.signon.LoginAction.login(LoginAction.java:144)
>>          at
>> org.josso.gateway.signon.LoginAction.execute(LoginAction.java:86)
>>          at
>> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
>>          at
>> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
>>          at
>> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
>>          at
>> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
>>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>          at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>          at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>          at
>> org.josso.gateway.filter.ProtocolHandlerFilter.doFilter(ProtocolHandlerFilter.java:86)
>>          at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>          at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>          at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>          at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>          at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>          at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>          at
>> org.josso.tc60.agent.SSOAgentValve.invoke(SSOAgentValve.java:275)
>>          at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>          at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>>          at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>>          at
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>>          at
>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>>          at java.lang.Thread.run(Thread.java:619)
>> ------------------------------------------------------------------------------------------------------
>> /apache-tomcat-6.0.18-sso/conf/Catalina/localhost/partnerapp.xml:
>>
>> <Context path="/partnerapp"
>> docBase="/usr2/tomcat/sso/apache-tomcat-6.0.18-sso/webapps/partnerapp"
>>           debug="99" reloadable="true" antiJARLocking="true"
> 
> path is not legal here, and docBase is not necessary if the path to 
> tomcat is the same for conf and webapps.
> 
> 
> Can you make a normal connection to the Db within a servlet, or does it 
> throw an exception?
> 
>   Context context = new InitialContext();
>   context  = (Context) context.lookup("java:/comp/env");
>   DataSource ds = (DataSource) context.lookup("jdbc/DefaultDS");
>   Connection conn = ds.getConnection();
> 
> 
> p
> 
> 
>> antiResourceLocking="false" crossContext="true">
>> <ResourceLink global="jdbc/DefaultDS" name="jdbc/DefaultDS"
>> type="javax.sql.DataSource"/>
>> </Context>
>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>
>>
>> Pid Ster wrote:
>>>
>>> On 01/12/2009 05:13, vramanaj wrote:
>>>>
>>>> Still getting the same error after changing Data Source name to
>>>> 'jdbc/DefaultDS'. Added resource link in webapp.xml.
>>>>
>>>>            Error : Error During Lookup Name jdbc is not bound in this
>>>> Context
>>>
>>> What is the full stack trace?
>>>
>>> Are you adding it to tomcat/conf/webapp.xml or to the
>>> META-INF/context.xml?  Check that Tomcat isn't overwriting the former,
>>> with the latter during startup or app reload cycles.
>>>
>>>> Are there any extra customizations required for Josso+Tomcat6?
>>>
>>> Tomcat doesn't know what JOSSO is.
>>>
>>> Can you write a sample servlet that gets a connection from the
>>> DataSource you've defined?  Maybe we can see if there's a problem with
>>> the definition, or if it's JOSSO that can't see the DS.
>>>
>>>
>>> p
>>>
>>>
>>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>>>
>>>> Pid Ster wrote:
>>>>>
>>>>> On 30/11/2009 13:46, vramanaj wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I am facing problem with configuring JNDI DataSources for Josso
>>>>>> project
>>>>>> in
>>>>>> Tomcat 6. Getting the following errors in tomcat log when i am trying
>>>>>> to
>>>>>> access the application. Defined resource in
>>>>>> conf/Catalina/localhost/webapp.xml. And res-reference in the
>>>>>> application's
>>>>>> web.xml.
>>>>>>
>>>>>> Nov 30, 2009 7:48:52 AM
>>>>>> org.josso.gateway.identity.service.store.db.DataSourceIdentityStore
>>>>>> getDataSource
>>>>>> SEVERE: Error during DB connection lookup
>>>>>> javax.naming.NameNotFoundException: Name DefaultDS is not bound in
>>>>>> this
>>>>>> Context
>>>>>>           at
>>>>>> org.apache.naming.NamingContext.lookup(NamingContext.java:770)
>>>>>>           at
>>>>>> org.apache.naming.NamingContext.lookup(NamingContext.java:153)
>>>>>>
>>>>>> Steps Followed:
>>>>>> 1. Defined DataSource within GlobalNamingResources
>>>>>>               <Resource name="/DefaultDS"
>>>>>
>>>>> Try using "jdbc/DefaultDS".  I don't believe you're allowed to start
>>>>> the
>>>>> name with a / character.
>>>>>
>>>>>>               auth="Container"
>>>>>>               type="javax.sql.DataSource"
>>>>>>               description="SSO DataSource"
>>>>>>               username="josso"
>>>>>>               password="josso"
>>>>>>               driverClassName="oracle.jdbc.OracleDriver"
>>>>>>               url="jdbc:oracle:thin:@md1npddev10:1521:jdaj"
>>>>>>
>>>>>> factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
>>>>>>               maxActive="8"
>>>>>>               maxIdle="4"/>
>>>>>>
>>>>>> 2. Added res-reference in web.xml
>>>>>> 3. Defined resource in conf/Catalina/localhost/webapp.xml
>>>>>
>>>>> If you've defined it in the global resources, you don't need to
>>>>> redefine
>>>>> it here, just use:
>>>>>
>>>>>      <ResourceLink
>>>>>        global="jdbc/DefaultDS"
>>>>>        name="jdbc/DefaultDS"
>>>>>        type="javax.sql.DataSource"/>
>>>>>
>>>>>
>>>>> p
>>>>>
>>>>>>               <Resource name="/DefaultDS"
>>>>>>               auth="Container"
>>>>>>               type="javax.sql.DataSource"
>>>>>>               description="SSO DataSource"
>>>>>>               username="josso"
>>>>>>               password="josso"
>>>>>>               driverClassName="oracle.jdbc.OracleDriver"
>>>>>>               url="jdbc:oracle:thin:@md1npddev10:1521:jdaj"
>>>>>>
>>>>>> factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
>>>>>>               maxActive="8"
>>>>>>               maxIdle="4"/>
>>>>>>
>>>>>> 4. In josso-gateway-db-stores.xml
>>>>>>       <db-istore:datasource-store id="josso-identity-store"
>>>>>>                         dsJndiName="java:comp/env/DefaultDS"
>>>>>>                         userQueryString="SELECT NAME FROM JOSSO_USER
>>>>>> WHERE
>>>>>> LOGIN = ?"
>>>>>>                         rolesQueryString="SELECT ROLE FROM
>>>>>> JOSSO_USER_ROLE
>>>>>> WHERE LOGIN = ?;"
>>>>>>                         credentialsQueryString="SELECT LOGIN AS
>>>>>> USERNAME,
>>>>>> PASSWORD FROM JOSSO_USER WHERE LOGIN = ?"
>>>>>>                         userPropertiesQueryString="SELECT NAME, VALUE
>>>>>> FROM
>>>>>> JOSSO_USER_PROPERTY WHERE LOGIN = ?"
>>>>>>                         resetCredentialDml="UPDATE JOSSO_USER SET
>>>>>> PASSWORD
>>>>>> = ?
>>>>>> WHERE LOGIN = ?"
>>>>>>                         relayCredentialQueryString="SELECT LOGIN
FROM
>>>>>> JOSSO_USER WHERE #?# = ?" />
>>>>>>
>>>>>> 5. When i try to access the example partner application (/partner),
>>>>>> getting
>>>>>> the following error:
>>>>>>               Error : Error During Lookup Name DefaultDS is not bound
>>>>>> in
>>>>>> this
>>>>>> Context
>>>>>>
>>>>>> I am using Josso 1.8.0 with tomcat 6.0.18.
>>>>>>
>>>>>> Please help me out to proceed further. Quick response is highly
>>>>>> appreciable.
>>>>>>
>>>>>> Thanks in Advance.
>>>>>>
>>>>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>> Mikolaj Rydzewski-2 wrote:
>>>>>>>
>>>>>>> Mikolaj Rydzewski wrote:
>>>>>>>> Now, I want to setup Josso single sign on system (www.josso.org)
>>>>>>>> and
>>>>>>>> force it to use JNDI DataSources as well. With no luck.
>>>>>>> Here's the solution for anyone interested (addition to typical
josso
>>>>>>> setup):
>>>>>>>
>>>>>>>        * define DataSource within GlobalNamingResources (e.g.
>>>>>>> jdbc/users)
>>>>>>>        * add JNDI support to josso webapp (e.g. and ResourceLink
to
>>>>>>>          META-INF/context.xml and resource-ref to WEB-INF/web.xml)
>>>>>>>        * reference DataSource from josso-gateway-config.xml using
>>>>>>>          java:comp/env/jdbc/users as its JNDI name
>>>>>>>
>>>>>>> Enjoy ;-)
>>>>>>>
>>>>>>> --
>>>>>>> Mikolaj Rydzewski<miki@ceti.pl>
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To start a new topic, e-mail: users@tomcat.apache.org
>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> Quoted from:
>>>>>> http://old.nabble.com/How-to-access-JNDI-resources-on-Tomcat-level-tp19672443p19689928.html
>>>>>>
>>>>>> Mikolaj Rydzewski-2 wrote:
>>>>>>>
>>>>>>> Christopher Schultz wrote:
>>>>>>>>>       * add JNDI support to josso webapp (e.g. and ResourceLink
to
>>>>>>>>>         META-INF/context.xml and resource-ref to WEB-INF/web.xml)
>>>>>>>>>
>>>>>>>>
>>>>>>>> Note that this is not required for Realms. See
>>>>>>>> http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html#Context+versus+GlobalNamingResources
>>>>>>>>
>>>>>>> I'm exposing DataSource to josso webapp, not the Realm. So I
need
>>>>>>> this.
>>>>>>> Lack of such configuration was causing my initial problems.
>>>>>>>
>>>>>>> --
>>>>>>> Mikolaj Rydzewski<miki@ceti.pl>
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To start a new topic, e-mail: users@tomcat.apache.org
>>>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/How-to-access-JNDI-resources-on-Tomcat-level-tp19672443p26590480.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message