Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    10

    Netbeans - Problema con i Session Beans

    Sono in fase di sviluppo di un'applicazione distribuita con tanto di database SQL, composta da un modulo WEB (pagine html, JSP e Servlet) e un modulo SERVER (Session bean ed Entity bean).
    Come DBMS uso MySQL e come Application server GlassFish.

    Ho prima creato la parte web e il programma gira tranquillamente, quindi sono passato all'implementazione degli entity bean (uno per ogni tabella del db) in un modulo a parte che hanno preso il posto delle classi entità che prima erano nel modulo web, quindi ho cambiato tutti i collegamenti a tale classi.
    Fino a qui tutto bene, l'applicazione gira e viene deployata; dopodichè ho cercato di implementare il primo Session Bean che ho chiamato "GestoreLogin" che implementa "GestoreLoginLocal", l'applicazione viene compilata senza errori ma quando la vado ad eseguire mi dà l'errore "...\build-impl.xml:268: The module has not been deployed. ERRORE NELLA COSTRUZIONE (tempo totale: 6 secondi)"
    cioè non me lo fa deployare.
    Ho creato un'unità di persistenza (Persistence Unit) e un Connection Pool come richiesto dalle specifiche ma il problema persiste, però sono arrivato a capire la fonte dell'errore, è il PersistenceContext difatti basta che elimino solo l'annotazione che uso nel session bean, ossia @PersistenceContext e l'applicazione me la deploya altrimenti no.

    Questa è la classe del bean:

    codice:
    package agenzia.ejb;
    
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import agenzia.jpa.Personale;
    
    @Stateless
    public class GestoreLogin implements GestoreLoginLocal {
    
        @PersistenceContext
        private EntityManager em;
    
        public Personale executeLogin(String username, String password) {
             Personale p = em.find(Personale.class, username);
             if(p == null){
                 return null;
             }
             else{
                 if (!(p.getPassword().equals(password)))
                     return null;
                 else{
                    return p;
                 }
             }
        }
    }
    Dove sbaglio? Quale potrebbe essere l'errore?
    Ripeto, basta che tolgo @PersistenceContext e l'applicazione parte, ho pensato che potesse mancare qualche libreria, non saprei..
    Help me please!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Come fai il deploy? da netbeans o da console di amministrazione di glassfish? dovresti mettere i log dell'errore cmq così non è che sia molto esplicativa la cosa

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    10
    Il deploy lo faccio da NetBeans.

    L'errore è questo:
    codice:
    Initial deploying Agenzia to D:\java\netbeans\Agenzia\dist\gfdeploy\Agenzia
    Completed initial distribution of Agenzia
    deploy?path=D:\java\netbeans\Agenzia\dist\gfdeploy\Agenzia&name=Agenzia&force=true failed on GlassFish v3 Domain
    D:\java\netbeans\Agenzia\nbproject\build-impl.xml:268: The module has not been deployed.
    ERRORE NELLA COSTRUZIONE (tempo totale: 8 secondi)
    Mentre nel log di Glassfish in particolare ho notato questo:
    codice:
    GRAVE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
    javax.persistence.PersistenceException: Exception [TOPLINK-28018] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
    Exception Description: predeploy for PersistenceUnit [Agenzia-ejbPU] failed.
    Internal Exception: Exception [TOPLINK-7212] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
    Exception Description: The attribute [data] from the entity class [class agenzia.jpa.Preventivo] does not specify a temporal type. A temporal type must be specified for persistent fields or properties of type java.util.Date and java.util.Calendar.
            at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:643)
            at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createContainerEntityManagerFactory(EntityManagerFactoryProvider.java:244)
            at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:181)
            at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:96)
            at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:121)
            at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:644)
            at org.glassfish.javaee.full.deployment.EarDeployer.prepareBundle(EarDeployer.java:269)
            at org.glassfish.javaee.full.deployment.EarDeployer.access$200(EarDeployer.java:79)
            at org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:131)
            at org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:129)
            at org.glassfish.javaee.full.deployment.EarDeployer.doOnBundles(EarDeployer.java:197)
            at org.glassfish.javaee.full.deployment.EarDeployer.doOnAllTypedBundles(EarDeployer.java:206)
            at org.glassfish.javaee.full.deployment.EarDeployer.doOnAllBundles(EarDeployer.java:232)
            at org.glassfish.javaee.full.deployment.EarDeployer.prepare(EarDeployer.java:129)
            at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:644)
            at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:296)
            at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
            at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
            at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
            at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
            at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
            at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
            at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
            at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
            at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
            at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
            at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
            at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
            at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
            at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
            at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
            at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
            at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
            at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
            at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
            at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
            at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
            at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
            at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
            at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
            at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
            at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
            at java.lang.Thread.run(Thread.java:619)
    Caused by: Exception [TOPLINK-28018] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
    Exception Description: predeploy for PersistenceUnit [Agenzia-ejbPU] failed.
    Internal Exception: Exception [TOPLINK-7212] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
    Exception Description: The attribute [data] from the entity class [class agenzia.jpa.Preventivo] does not specify a temporal type. A temporal type must be specified for persistent fields or properties of type java.util.Date and java.util.Calendar.
            at oracle.toplink.essentials.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:228)
            ... 43 more
    Caused by: Exception [TOPLINK-7212] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
    Exception Description: The attribute [data] from the entity class [class agenzia.jpa.Preventivo] does not specify a temporal type. A temporal type must be specified for persistent fields or properties of type java.util.Date and java.util.Calendar.
            at oracle.toplink.essentials.exceptions.ValidationException.noTemporalTypeSpecified(ValidationException.java:1215)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.MetadataValidator.throwNoTemporalTypeSpecified(MetadataValidator.java:352)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.DirectAccessor.processTemporal(DirectAccessor.java:321)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.DirectAccessor.processJPAConverters(DirectAccessor.java:245)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.DirectAccessor.processMappingConverter(DirectAccessor.java:287)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.BasicAccessor.processDirectToFieldMapping(BasicAccessor.java:188)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.BasicAccessor.process(BasicAccessor.java:160)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.ClassAccessor.processAccessor(ClassAccessor.java:528)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.ClassAccessor.processAccessorFields(ClassAccessor.java:541)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.ClassAccessor.processAccessors(ClassAccessor.java:567)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.ClassAccessor.process(ClassAccessor.java:498)
            at oracle.toplink.essentials.internal.ejb.cmp3.metadata.MetadataProcessor.processAnnotations(MetadataProcessor.java:240)
            at oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:370)
            at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:607)
            ... 42 more
    Spero possa essere utile, sembra un'incompatibilità del tipo Calendar che ho usato nel jpa Preventivo per rappresentare la data, ma anche se fosse questo, cosa c'entra con l'errore del @PersistenceContext?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    fai una prova stupida, togli quel tipo (calendar)e prova il deploy.
    Magari il prob è appunto il mappaggio su db (che calendar non ha diretto)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    10
    Il tipo GregorianCalendar va bene, dovevo solo inserire il tag
    codice:
    @Temporal(TemporalType.TIMESTAMP)

    Grazie comunque per l'aiuto.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.