tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pid <...@pidster.com>
Subject Re: How to access JNDI resources on Tomcat level
Date Tue, 01 Dec 2009 12:39:01 GMT
On 01/12/2009 11:41, vramanaj wrote:
>
> 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;
>      }

So, you are confirming that the DataSource isn't working?

p


> 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
>>
>>
>>
>


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


Mime
View raw message