Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    39

    Problemi con EJB 3.0 JNDI lookup

    Buongiorno a tutti,

    sto lavorando su Eclipse ad un progetto JavaEE. Per il momento ho creato un normale progetto "EJB" e, tramite le funzioni di JPA e una connessione ad un database Mysql chiamato "qax" ho creato le entità a partire dalle tabelle.
    Dopo di che ho creato dei Session Bean per gestire la logica di business (prelevare dati dal db ed eseguire operazioni CRUD) creando dei metodi ad hoc che implementano un interfaccia remota.

    La struttura del progetto è

    MioProgetto
    --ejbModule
    -----package it.bean
    ----------> MioBean
    ----- package it.service
    ----------> TestI
    ----------> MiaClasse
    -----package it.test
    ----------> Main


    E questo è un esempio di codice:

    codice:
    @Remote
    interface TestI {
       void hello();
    }
    
    @Stateless
    public class MiaClasse implements TestI {
         void hello() {
            System.out.println("Hello world");
         }
    }


    ed una classe GestLookup che dovrebbe gestire il lookup jndi:

    codice:
    public class GestLookup {
    
           private TestI testI;
    
           public GestLookup () throws RuntimeException {
          try {
             testI= (TestI )new InitialContext().lookup("it.service.MiaClasse");
    
    
          }
          catch(NamingException ex) {
             throw new RuntimeException(ex);
    }


    Mentre questo è il mio persistence.xml:

    codice:
    <?xml version="1.0" encoding="UTF-8"?><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="QaxEJB" transaction-type="JTA">
            <jta-data-source>qaxDB</jta-data-source>
            <class>it.bean.MioBean</class>
            <exclude-unlisted-classes>true</exclude-unlisted-classes>
            <properties/>
        </persistence-unit>
    
    </persistence>


    Ora vorrei testare questa classe per vedere se funziona in un metodo Main ma i problemi sono che:
    1) Uso Glassfish Server, provando a deployare il progetto ho questo errore

    codice:
    2017-08-09T17:27:25.781+0200|Informazioni: Created EjbThreadPoolExecutor with thread-core-pool-size 16 thread-max-pool-size 32 thread-keep-alive-seconds 60 thread-queue-capacity 2147483647 allow-core-thread-timeout false 
    2017-08-09T17:27:26.633+0200|Grave: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
    2017-08-09T17:27:26.635+0200|Grave: Exception while preparing the app
    2017-08-09T17:27:26.636+0200|Grave: java.lang.ClassCastException
        at java.lang.Class.cast(Class.java:2990)
        at org.glassfish.persistence.common.PersistenceHelper.lookupPMResource(PersistenceHelper.java:63)
        at org.glassfish.persistence.jpa.ProviderContainerContractInfoBase.lookupDataSource(ProviderContainerContractInfoBase.java:71)
        at org.glassfish.persistence.jpa.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:108)
        at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:155)
        at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:120)
        at org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:224)
        at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:495)
        at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:233)
        at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:168)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:871)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:410)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
        at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
        at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
        at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
        at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
        at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
        at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
        at java.lang.Thread.run(Thread.java:662)
    
    
    2017-08-09T17:27:26.667+0200|Grave: Exception while preparing the app
    Gogglando qua e la non sono riuscito a capire il motivo, qualcuno esperto può aiutarmi?

    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Nel file di log non c'è altro? Così, su due piedi, si può solo dire che nel creare il PersistenceContext sta cercando di castare una risorsa in un tipo non corretto.

    Vedo che usi GlassFish: com'è configurata la connessione al DB? Il tipo di risorsa è di tipo DataSource? Perchè in GlassFish è possibile impostare diversi tipi di risorsa: DataSource, XADataSource, ConnectionPoolDataSource e Driver.

    Questo lo vedi dalla console di amministrazione, in Resources -> JDBC -> JDBC Connection Pools. Cerca la risorsa che dovrebbe chiamarsi "qaxDB" e verifica che il Resource Type sia di tipo "javax.sql.DataSource".

    Se vi sono altre eccezioni, controllele tutte, soprattutto quelle dove c'è scritto "Caused by..."


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    39
    Ciao, grazie per la risposta.
    Nel Connection pool della console di amministrazione non c'è nessuna risorsa chiamata "qaxDB", infatti mi sono preso la briga di crearne una nuova io chiamandola però "jdbc/test_qax", impostando il Resource Type di tipo "javax.sql.DataSource"ed impostando le varie proprietà del mio DB. Provando a cliccare sulla casellina "Ping", nella View "General", ottengo un successo, quindi deduco che a livello di connessione GlassFish è connessa al mio DB.

    Ora quello che non capisco e che mi ha fatto perdere 2 giorni è: se la connessione al DB che ho creato l'ho chiamata "jdbc/test_qax", come fa il persistence context a collegarsi a tale risorsa?

    Grazie

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Se l'hai chiamata "jdbc/test_qax", allora dovrai modificare il tuo persistence.xml in questo modo:

    codice:
    <persistence-unit name="QaxEJB" transaction-type="JTA">
        <jta-data-source>jdbc/test_qax</jta-data-source>
        <class>it.bean.MioBean</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties/>
    </persistence-unit>

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    39
    Già provato, ma mi da questo errore

    codice:
    2017-08-10T11:37:51.877+0200|Informazioni: Created EjbThreadPoolExecutor with thread-core-pool-size 16 thread-max-pool-size 32 thread-keep-alive-seconds 60 thread-queue-capacity 2147483647 allow-core-thread-timeout false 
    2017-08-10T11:37:52.670+0200|Grave: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
    2017-08-10T11:37:52.671+0200|Grave: Exception while preparing the app
    2017-08-10T11:37:52.672+0200|Grave: Invalid resource : jdbc/test_qax__pm
    java.lang.RuntimeException: Invalid resource : jdbc/test_qax__pm
    	at com.sun.enterprise.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:540)
    	at com.sun.enterprise.connectors.ConnectorRuntime.lookupPMResource(ConnectorRuntime.java:469)
    	at org.glassfish.persistence.common.PersistenceHelper.lookupPMResource(PersistenceHelper.java:63)
    	at org.glassfish.persistence.jpa.ProviderContainerContractInfoBase.lookupDataSource(ProviderContainerContractInfoBase.java:71)
    	at org.glassfish.persistence.jpa.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:108)
    	at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:155)
    	at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:120)
    	at org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:224)
    	at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:495)
    	at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:233)
    	at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:168)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:871)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:410)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
    	at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
    	at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
    	at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
    	at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
    	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
    	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
    	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
    	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid resource : jdbc/test_qax__pm
    	at com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl$MyDataSource.validateResource(ConnectorResourceAdminServiceImpl.java:274)
    	at com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl$MyDataSource.setResourceInfo(ConnectorResourceAdminServiceImpl.java:255)
    	at com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl.lookupDataSourceInDAS(ConnectorResourceAdminServiceImpl.java:245)
    	at com.sun.enterprise.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:538)
    	... 40 more
    
    
    2017-08-10T11:37:52.700+0200|Grave: Exception while preparing the app : Invalid resource : jdbc/test_qax__pm
    com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid resource : jdbc/test_qax__pm
    	at com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl$MyDataSource.validateResource(ConnectorResourceAdminServiceImpl.java:274)
    	at com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl$MyDataSource.setResourceInfo(ConnectorResourceAdminServiceImpl.java:255)
    	at com.sun.enterprise.connectors.service.ConnectorResourceAdminServiceImpl.lookupDataSourceInDAS(ConnectorResourceAdminServiceImpl.java:245)
    	at com.sun.enterprise.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:538)
    	at com.sun.enterprise.connectors.ConnectorRuntime.lookupPMResource(ConnectorRuntime.java:469)
    	at org.glassfish.persistence.common.PersistenceHelper.lookupPMResource(PersistenceHelper.java:63)
    	at org.glassfish.persistence.jpa.ProviderContainerContractInfoBase.lookupDataSource(ProviderContainerContractInfoBase.java:71)
    	at org.glassfish.persistence.jpa.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:108)
    	at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:155)
    	at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:120)
    	at org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:224)
    	at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:495)
    	at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:233)
    	at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:168)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:871)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:410)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
    	at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
    	at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
    	at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
    	at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
    	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
    	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
    	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
    	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    	at java.lang.Thread.run(Thread.java:662)
    Davvero sto diventando pazzo. non riesco a capire perchè Eclipse e Glassfish sembrano essere così incompatibili

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Nel precedente messaggio hai detto di aver creato la risorsa e di averla chiamata "jdbc/test_qax"... nell'eccezione da te postata ora si vede che lui sta andando in cerca di una risorsa chiamata "jdbc/test_qax__pm", che non esiste.

    Ora: se GlassFish ha una risorsa chiamata "jdbc/test_qax" e il deploy lo fai su GlassFish, questa applicazione deve essere configurata per poter girare lì... quindi il persistence context va configurato come ti ho fatto vedere prima. E poco importa se l'application server che viene usato da Eclipse è configurato in modo diverso... al massimo non funzionerà il "Run" dell'applicazione dall'IDE, ma chissene.

    Eclipse e Glassfish non c'entrano nulla. Eclipse è un IDE (un programma che serve per programmare), GlassFish un Application Server (un programma che serve a far girare applicazioni EE). Eclipse può essere configurato per utilizzare un Application Server interno, che ha le sue configurazioni, o anche più di uno (io uso NetBeans e lì posso configurare tutti gli Application Server che voglio) e potenzialmente tutti diversi... questo non c'entra nulla con il server in cui poi farai il deploy (quello di produzione).


    Ciao.
    Ultima modifica di LeleFT; 10-08-2017 a 11:47
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    39
    Nel precedente messaggio hai detto di aver creato la risorsa e di averla chiamata "jdbc/test_qax"... nell'eccezione da te postata ora si vede che lui sta andando in cerca di una risorsa chiamata "jdbc/test_qax__pm", che non esiste.
    Forse non ci siamo capiti: nel precedente messaggio ho detto che nel Connection pool ho creato una risorsa chiamata "jdbc/test_qax", ovvero una CONNESSIONE al db chiamata "jdbc/test_qax".
    Nel Connection pool tu sai che si creano solo connessioni, ed io questo ho fatto.

    Facendo così come mi hai detto
    codice:
    
    
    codice:
    <persistence-unit name="QaxEJB" transaction-type="JTA">
        <jta-data-source>jdbc/test_qax</jta-data-source>
        <class>it.bean.MioBean</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties/>
    </persistence-unit>
    Se provo a fare il deploy da Eclipse (configurando Glassfish come Application Server interno) ho quegli errori li.
    Quindi ti ripeto la domanda: se la connessione al DB che ho creato è chiamata "jdbc/test_qax", come fa il persistence context a collegarsi a tale connessione? E' un problema forse del lookup JNDI?

    Sto ipotizzando delle cause, spero di essere stato più chiaro

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Suggerimento: compila il progetto, prendi il WAR (o l'EAR a seconda del progetto creato) generato e fai il deploy a mano sul server GlassFish...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    39
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Suggerimento: compila il progetto, prendi il WAR (o l'EAR a seconda del progetto creato) generato e fai il deploy a mano sul server GlassFish...
    Ho creato il .jar del mio progetto, ho provato a deployarlo sul server GlassFish dalla console amministrativa, e mi torna questo
    errore

    [code]
    Exception while preparing the app : Invalid resource : jdbc/test_qax__pmcom.sun.appserv.connectors.internal.ap i.ConnectorRuntimeException: Invalid resource : jdbc/test_qax__pm at com.sun.enterprise.connectors.service.ConnectorRes ourceAdminServiceImpl$MyDataSource.validateResourc e(ConnectorResourceAdminServiceImpl.java:274) at com.sun.enterprise.connectors.service.ConnectorRes ourceAdminServiceImpl$MyDataSource.setResourceInfo (ConnectorResourceAdminServiceImpl.java:255) at com.sun.enterprise.connectors.service.ConnectorRes ourceAdminServiceImpl.lookupDataSourceInDAS(Connec torResourceAdminServiceImpl.java:245) at com.sun.enterprise.connectors.ConnectorRuntime.loo kupDataSourceInDAS(ConnectorRuntime.java:538) at com.sun.enterprise.connectors.ConnectorRuntime.loo kupPMResource(ConnectorRuntime.java:469) at org.glassfish.persistence.common.PersistenceHelper .lookupPMResource(PersistenceHelper.java:63) at org.glassfish.persistence.jpa.ProviderContainerCon tractInfoBase.lookupDataSource(ProviderContainerCo ntractInfoBase.java:71) at org.glassfish.persistence.jpa.PersistenceUnitInfoI mpl.<init>(PersistenceUnitInfoImpl.java:108) at org.glassfish.persistence.jpa.PersistenceUnitLoade r.loadPU(PersistenceUnitLoader.java:155) at org.glassfish.persistence.jpa.PersistenceUnitLoade r.<init>(PersistenceUnitLoader.java:120) at org.glassfish.persistence.jpa.JPADeployer$1.visitP UD(JPADeployer.java:224) at org.glassfish.persistence.jpa.JPADeployer$Persiste nceUnitDescriptorIterator.iteratePUDs(JPADeployer. java:495) at org.glassfish.persistence.jpa.JPADeployer.createEM Fs(JPADeployer.java:233) at org.glassfish.persistence.jpa.JPADeployer.prepare( JPADeployer.java:168) at com.sun.enterprise.v3.server.ApplicationLifecycle. prepareModule(ApplicationLifecycle.java:871) at com.sun.enterprise.v3.server.ApplicationLifecycle. deploy(ApplicationLifecycle.java:410) at com.sun.enterprise.v3.server.ApplicationLifecycle. deploy(ApplicationLifecycle.java:240) at org.glassfish.deployment.admin.DeployCommand.execu te(DeployCommand.java:389) at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.ex ecute(CommandRunnerImpl.java:348) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCo mmand(CommandRunnerImpl.java:363) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCo mmand(CommandRunnerImpl.java:1085) at com.sun.enterprise.v3.admin.CommandRunnerImpl.acce ss$1200(CommandRunnerImpl.java:95) at com.sun.enterprise.v3.admin.CommandRunnerImpl$Exec utionContext.execute(CommandRunnerImpl.java:1291) at com.sun.enterprise.v3.admin.CommandRunnerImpl$Exec utionContext.execute(CommandRunnerImpl.java:1259) at org.glassfish.admin.rest.ResourceUtil.runCommand(R esourceUtil.java:214) at org.glassfish.admin.rest.ResourceUtil.runCommand(R esourceUtil.java:207) at org.glassfish.admin.rest.resources.TemplateListOfR esource.createResource(TemplateListOfResource.java :148) at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.jersey.spi.container.JavaMethodInvokerFact ory$1.invoke(JavaMethodInvokerFactory.java:60) at com.sun.jersey.server.impl.model.method.dispatch.A bstractResourceMethodDispatchProvider$ResponseOutI nvoker._dispatch(AbstractResourceMethodDispatchPro vider.java:205) at com.sun.jersey.server.impl.model.method.dispatch.R esourceJavaMethodDispatcher.dispatch(ResourceJavaM ethodDispatcher.java:75) at com.sun.jersey.server.impl.uri.rules.HttpMethodRul e.accept(HttpMethodRule.java:288) at com.sun.jersey.server.impl.uri.rules.SubLocatorRul e.accept(SubLocatorRule.java:134) at com.sun.jersey.server.impl.uri.rules.RightHandPath Rule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.SubLocatorRul e.accept(SubLocatorRule.java:134) at com.sun.jersey.server.impl.uri.rules.RightHandPath Rule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.ResourceClass Rule.accept(ResourceClassRule.java:108) at com.sun.jersey.server.impl.uri.rules.RightHandPath Rule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.RootResourceC lassesRule.accept(RootResourceClassesRule.java:84) at com.sun.jersey.server.impl.application.WebApplicat ionImpl._handleRequest(WebApplicationImpl.java:146 9) at com.sun.jersey.server.impl.application.WebApplicat ionImpl._handleRequest(WebApplicationImpl.java:140 0) at com.sun.jersey.server.impl.application.WebApplicat ionImpl.handleRequest(WebApplicationImpl.java:1349 ) at com.sun.jersey.server.impl.application.WebApplicat ionImpl.handleRequest(WebApplicationImpl.java:1339 ) at com.sun.jersey.server.impl.container.grizzly.Grizz lyContainer._service(GrizzlyContainer.java:182) at com.sun.jersey.server.impl.container.grizzly.Grizz lyContainer.service(GrizzlyContainer.java:147) at org.glassfish.admin.rest.adapter.RestAdapter.servi ce(RestAdapter.java:148) at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service( GrizzlyAdapter.java:179) at com.sun.enterprise.v3.server.HK2Dispatcher.dispath (HK2Dispatcher.java:117) at com.sun.enterprise.v3.services.impl.ContainerMappe r$Hk2DispatcherCallable.call(ContainerMapper.java: 354) at com.sun.enterprise.v3.services.impl.ContainerMappe r.service(ContainerMapper.java:195) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(P rocessorTask.java:860) at com.sun.grizzly.http.ProcessorTask.doProcess(Proce ssorTask.java:757) at com.sun.grizzly.http.ProcessorTask.process(Process orTask.java:1056) at com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:229) at com.sun.grizzly.DefaultProtocolChain.executeProtoc olFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(Htt pProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(Pr otocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(Selec tionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:7 1) at com.sun.grizzly.util.AbstractThreadPool$Worker.doW ork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run (AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:662)
    [code]

    Ovvero l'errore di prima. Mi viene il dubbio se il persistence.xml debba essere configurato diversamente, o se bisogna inserire altre risorse tramite la Console Amministrativa di GlassFish. Infatti vedo che si possono configurare varie risorse, come dei Connectors, dei JNDI, ecc.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.