I did this:

context.mxl

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/mavenproject3">
 <Realm className="realm.test.MyDataSourceRealm"
dataSourceName="MyDataSource"
 userTable="usertable"
 userNameCol="usercol"
 userCredCol="passcol"
 userRoleTable="roltable"
 roleNameCol="rolcol"/>
</Context>



MyDataSourceRealm.java:

package realm.test;

import java.sql.Connection;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class  MyDataSourceRealm extends
org.apache.catalina.realm.DataSourceRealm{

    @Override
    protected Connection open() {
        DataSource dataSource = null;
        try{
            dataSource = (DataSource)new
InitialContext().lookup("java:openejb/Resource/" + dataSourceName);
            return dataSource.getConnection();
        }
        catch(Exception e){
            e.printStackTrace();
        }
       return null;
    }

}


And i always get ClassNotFoundException:

Severe: Begin event threw exception
java.lang.ClassNotFoundException: realm.test.KxDataSourceRealm

My class is in my same project, and the package is correct, i dont know why
my class cannot be found.

What can be??

Thanks


2012/5/14 Romain Manni-Bucau <rmannibu...@gmail.com>

> here the issue https://issues.apache.org/jira/browse/TOMEE-191
>
> here a sample
> http://openejb.apache.org/examples-trunk/realm-in-tomee/README.html
>
> - Romain
>
>
> 2012/5/15 Romain Manni-Bucau <rmannibu...@gmail.com>
>
> > seems using org.apache.catalina.realm.DataSourceRealm doesn't work out of
> > the box (currently hacking on it).
> >
> > extending it and
> > overriding org.apache.catalina.realm.DataSourceRealm#open() to make:
> > DataSource dataSource = (DataSource)new
> > InitialContext().lookup("java:openejb/Resource/" + dataSourceName);
> should
> > be enough as a workaround.
> >
> > - Romain
> >
> >
> >
> > 2012/5/14 Jean-Louis MONTEIRO <jeano...@gmail.com>
> >
> >> That seems correct to me.
> >> Can you try adding the property localDataSource=true
> >> to the following realm definition ?
> >>
> >> <Realm
> >>           className="org.apache.catalina.realm.DataSourceRealm"
> >>           dataSourceName="MyDataSource"
> >>           userTable="userTable"
> >>           userNameCol="user"
> >>           userCredCol="pass"
> >>           userRoleTable="rolTable"
> >>           roleNameCol="rol"/>
> >>
> >> That should hopefully do the trick as Tomcat will lookup to the right
> >> context.
> >> The only issue that may happen is the order. I mean, may be Tomcat gonna
> >> lookup the resource before TomEE fully initialize and register the
> >> datasource.
> >>
> >> Anyway, let's proceed with the property. We can continue investigating
> >> after.
> >>
> >> Jean-Louis
> >>
> >> 2012/5/14 José Luis Cetina <maxtorz...@gmail.com>
> >>
> >> > Hi my web app use openJPA for database CRUD, i configure like this:
> >> >
> >> > tomee.xml:
> >> >
> >> > <Resource id="MyDataSource" type="DataSource">
> >> >  JdbcDriver com.mysql.jdbc.Driver
> >> >  JdbcUrl jdbc:mysql://localhost:3306/mydatabase?autoReconnect=true
> >> >  UserName myuser
> >> >  Password mypass
> >> >  JtaManaged true
> >> > </Resource>
> >> >
> >> > <Resource id="MyUnmanagedDataSource" type="DataSource">
> >> >  JdbcDriver com.mysql.jdbc.Driver
> >> >  JdbcUrl jdbc:mysql://localhost:3306/mydatabase?autoReconnect=true
> >> >  UserName myuser
> >> >  Password mypass
> >> >  JtaManaged false
> >> > </Resource>
> >> >
> >> >
> >> > my persistence.xml:
> >> >
> >> > <persistence version="2.0" xmlns="
> >> http://java.sun.com/xml/ns/persistence";
> >> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> >> xsi:schemaLocation="
> >> > http://java.sun.com/xml/ns/persistence
> >> > http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd";>
> >> >    <persistence-unit name="testPU" transaction-type="JTA">
> >> >
> >> >
> >>
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> >> >        <jta-data-source>MyDataSource</jta-data-source>
> >> >
>  <non-jta-data-source>MyUnmanagedDataSource</non-jta-data-source>
> >> > .
> >> > .
> >> > .
> >> > </persistence>
> >> >
> >> >
> >> > MyEJB.java
> >> >
> >> > @Stateless
> >> > public class MyEJB {
> >> >
> >> >    @PersistenceContext(name="testPU")
> >> >    private EntityManager em;
> >> >
> >> >    public void test(){
> >> >       .....
> >> >       em.createQuery("SELECT o FROM Table o").getResultList();
> >> >       ........
> >> >    }
> >> > }
> >> >
> >> >
> >> > And all of this works without any trouble.    :)
> >> >
> >> >
> >> > Now im trying to use DataSourceRealm with the same Datasource
> >> (tomee.xml)
> >> > but doesnt work
> >> >
> >> > context.xml
> >> >
> >> > <Realm
> >> >            className="org.apache.catalina.realm.DataSourceRealm"
> >> >            dataSourceName="MyDataSource"
> >> >            userTable="userTable"
> >> >            userNameCol="user"
> >> >            userCredCol="pass"
> >> >            userRoleTable="rolTable"
> >> >            roleNameCol="rol"/>
> >> >
> >> > I expect the realm take the same DataSource from tomee.xml but this
> >> doesnt
> >> > happend:
> >> >
> >> > Severe: ........
> >> > The MyDataSource name is not associated to this context.
> >> >
> >> >
> >> > Is there a way to use the same datasource (tomee.xml)
> >> >
> >> > If i use JDBCRealm it works, but i want to reuse the same datasource
> >> > config.
> >> >
> >> >
> >> > Any?
> >> >
> >> >
> >> >
> >> > --
> >> > -------------------------------------------------------------------
> >> > SCJA. José Luis Cetina
> >> > -------------------------------------------------------------------
> >> >
> >> >
> >> > --
> >> > -------------------------------------------------------------------
> >> > *SCJA. José Luis Cetina*
> >> > -------------------------------------------------------------------
> >> >
> >>
> >
> >
>



-- 
-------------------------------------------------------------------
*SCJA. José Luis Cetina*
-------------------------------------------------------------------

Reply via email to