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

Reply via email to