[Risolto] Apache Tomee - Context.xml Realm e JNDI

Ciao a tutti ragazzi,
vi scrivo perché ho un problema con la configurazione di un’applicazione web…
Come server sto usando Apache Tomee, (un tomcat con steroidi XD) visto che nella mia applicazione utilizzo Enterprise JavaBean, JPA, ecc…

Vi illustro prima i file di configurazione e poi vi spiego il mio problema:

contex.xml:

[code]<?xml version="1.0" encoding="UTF-8"?>

<Resource auth="Container" name="jdbc/mysqlnaplesquare" 
          singleton="true"
          driverClassName="com.mysql.jdbc.Driver"
          defaultAutoCommit="false"
          removeAbandoned="true"
          removeAbandonedTimeout="180"
          commitOnReturn="true"
          type="javax.sql.DataSource"
          factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
          maxActive="100" initialSize="10"
          testWhileIdle="true" timeBetweenEvictionRunsMillis="10000"
          maxIdle="100" minIdle="5" maxWait="30000"
          testOnBorrow="true" testOnReturn="false"
          validationQuery="SELECT 1"
          validationInterval="60000"
          closeMethod="close"
          username="USER"
          password="PSWD"
          url="jdbc:mysql://localhost:3306/naplesquareDB" />

<Realm className="org.apache.catalina.realm.LockOutRealm">
    <Realm className="org.apache.catalina.realm.DataSourceRealm"
           userTable="users" userNameCol="nickname" userCredCol="password"
           userRoleTable="users" roleNameCol="role" 
           localDataSource="true" dataSourceName="jdbc/mysqlnaplesquare" />
</Realm>
[/code]

web.xml:

<!-- configurazione servlet e impostazioni di sicurezza -->
<resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/mysqlnaplesquare</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>[/code]

Il problema è questo:
per accedere alle risorse protette utilizzo l'autenticazione tramite FORM... ma quando provo ad accedere tramite la pagina di login... il login fallisce....
l'errore è il seguente:
[code]Dec 04, 2013 1:20:57 PM org.apache.catalina.realm.DataSourceRealm open
SEVERE: Exception performing authentication
javax.naming.NameNotFoundException: Name "module/Object" not found.
	at org.apache.openejb.core.ivm.naming.IvmContext.federate(IvmContext.java:197)
	at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:151)
	at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:126)
	at org.apache.openejb.core.ivm.naming.IntraVmJndiReference.getObject(IntraVmJndiReference.java:43)
	at org.apache.openejb.core.ivm.naming.Reference.getContent(Reference.java:40)
	at org.apache.xbean.naming.reference.SimpleReference$SimpleObjectFactory.getObjectInstance(SimpleReference.java:137)
	at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:843)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:154)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:831)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
	at org.apache.catalina.realm.DataSourceRealm.open(DataSourceRealm.java:394)
	at org.apache.catalina.realm.DataSourceRealm.authenticate(DataSourceRealm.java:285)
	at org.apache.catalina.realm.CombinedRealm.authenticate(CombinedRealm.java:146)
	at org.apache.catalina.realm.LockOutRealm.authenticate(LockOutRealm.java:180)
	at org.apache.catalina.realm.CombinedRealm.authenticate(CombinedRealm.java:146)
	at org.apache.tomee.catalina.TomEERealm.authenticate(TomEERealm.java:43)
	at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:296)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:450)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:724)

Questo forum è sempre il mio primo punto di riferimento per problemi più grandi di me XD
Non so più che fare, ho letto e riletto la documentazione apache per configurare gli accessi tramite Realm, COntext.xml eccc…
Spero in un vostro aiuto :slight_smile:

Sembra una domanda scritta da me (anche io sto lavorando su queste cose) :slight_smile:
Tuttavia non so come aiutarti

ho risolto ! Sembrava essere un problema del server…
Se stai usando tomee ti consiglio di usare la verione plus+ e non la webprofile !!

Che cambia?

Ti cito dal sito:

Offre un supporto completo alle tecnologie JavaEE :wink:

Per caso hai mai avuto a che fare con la tecnologia JAAS?

Ci sto avendo a che fare ora XD Non sono proprio un esperto…
che ti serve ?

P.S.
forse è il caso di aprire un altro thread, che dici ? :slight_smile:

Mi serve configurare TomEE con MySQL/JPA-JTA e JAAS. Più tardi creo un nuovo topic

E’ esattamente quello che ho fatto io… mandami il link del topic in messaggio privato che se posso ti do una mano :wink: