Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2019
    Messaggi
    2

    javax.naming.NoInitialContextException HELP!

    Ciao a tutti ragazzi! Sto scrivendo un semplice esercizio per ejb ma mi da sempre questo errore (ho provato anche con programmi funzionanti su altri computer ma sul mio persiste sempre questo errore che ora vi allego)
    Premetto che sto usando netbeans con glassfish
    L'errore è:

    codice:
    javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
        at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:350)
        at javax.naming.InitialContext.lookup(InitialContext.java:417)
        at fornitoriclientejb.FornitoriClientEJB.main(FornitoriClientEJB.java:32)
    
    CODICE: 
    // classe FornitoriClientEJB
    
    
    package fornitoriclientejb;
    import esame.FornitoreEJBRemote;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    
    
    public class FornitoriClientEJB {
        public static final Logger log = Logger.getGlobal();
        
        public static void main(String[] args){
            try {
                log.info("Inizio...");
                Context ctx;
                ctx = new InitialContext();
                log.info("Contesto creato ");
                log.info("faccio lookup");
                FornitoreEJBRemote ejbf = (FornitoreEJBRemote)ctx.lookup("java:global/Fornitori/FornitoreEJB!esame.FornitoreEJBRemote");
                log.info("tutto apposto");
             
            } catch (NamingException ex) {
                Logger.getLogger(FornitoriClientEJB.class.getName()).log(Level.SEVERE, null, ex);
            }
            
        }
    
    
    }
    
    // classe DatabasePopulator
    package esame;
    
    
    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;
    import javax.annotation.sql.DataSourceDefinition;
    import javax.ejb.EJB;
    import javax.ejb.Singleton;
    import javax.ejb.Startup;
    
    
    
    
    @Singleton
    @Startup
    @DataSourceDefinition(
            className ="org.apache.derby.jdbc.EmbeddedDataSource",
            name ="java:global/jdbc/EsameDS",
            user ="APP",
            password ="APP",
            databaseName ="EsameDB",
            properties ={"connectionAttributes =;crate=true"}
    
    
    )
    public class DatabasePopulator {
        @EJB
        private FornitoreEJB ejb;
        private Fornitore f1,f2;
        
        @PostConstruct
        private void populatedDB(){
            f1 = new Fornitore("123", "nome1", "cognome1", 23, 5);
            f2 = new Fornitore("3456", "nome2", "cognome2", 3, 1);
            ejb.createFornitore(f1);
            ejb.createFornitore(f2);
        }
        
        @PreDestroy
        private void clearDB(){
            ejb.deleteFornitore(f1);
            ejb.deleteFornitore(f2);
        }
    }
    
    
    //classe databaseProducer
    
    
    package esame;
    
    
    import javax.enterprise.inject.Produces;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    
    
    public class DatabaseProducer {
        @Produces
        @PersistenceContext(unitName = "FornitoriPU")
        private EntityManager em;
        
    }
    
    // classe Fornitoreejbpackage esame;
    
    
    import java.util.List;
    import javax.ejb.LocalBean;
    import javax.ejb.Stateless;
    import javax.inject.Inject;
    import javax.persistence.EntityManager;
    import javax.persistence.TypedQuery;
    
    
    
    
    @Stateless
    @LocalBean
    public class FornitoreEJB implements FornitoreEJBRemote {
        
        @Inject 
        private EntityManager em;
    
    
        @Override
        public List<Fornitore> findALLFornitore() {
           TypedQuery<Fornitore> query = em.createNamedQuery("Fornitore.findALL",Fornitore.class);
           return query.getResultList();
        }
    
    
        @Override
        public List<Fornitore> findOrdermax(int max) {
            TypedQuery<Fornitore> query = em.createNamedQuery("Fornitore.findMaxOrder",Fornitore.class);
            query.setParameter(3,max);
            return query.getResultList();
        }
    
    
        @Override
        public Fornitore findID(String id) {
            TypedQuery<Fornitore> query = em.createNamedQuery("Fornitore.findID",Fornitore.class);
            query.setParameter(1, id);
            return query.getSingleResult();
        }
    
    
        @Override
        public Fornitore findCognome(String cognome) {
            TypedQuery<Fornitore>query = em.createNamedQuery("Fornitore.findCognome",Fornitore.class);
            query.setParameter(2, cognome);
            return query.getSingleResult();
        }
    
    
        @Override
        public Fornitore createFornitore(Fornitore f) {
            em.persist(f);
             return f;
        }
    
    
        @Override
        public Fornitore updateFornitore(Fornitore f) {
            return em.merge(f);
        }
    
    
        @Override
        public Fornitore incrementaOrdini(String id, int i) {
           Fornitore f = this.findID(id);
           f.setValoteTotOrdini(f.getValoteTotOrdini()+i);
           return f;
        }
    
    
        @Override
        public void deleteFornitore(Fornitore f) {
             em.remove(em.merge(f));
        }
    
    
    }
    
    
    //classe fornitore
    
    
    package esame;
    
    
    import java.io.Serializable;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.validation.constraints.NotNull;
    
    
    @Entity
    @NamedQueries({
        @NamedQuery(name="Fornitore.findALL",query="SELECT f FROM Fornitore f"),
        @NamedQuery(name="Fornitore.findID",query="SELECT f FROM Fornitore f WHERE f.id=?1"),
        @NamedQuery(name="Fornitore.findCognome",query="SELECT f FROM Fornitore f WHERE f.cognome =?2"),
        @NamedQuery(name="Fornitore.findMaxOrder",query="SELECT f FROM Fornitore f WHERE f.maxOrder >?3")
    })
    public class Fornitore implements Serializable {
      
        @Id
        private String id;
        @NotNull
        private String nome;
        @NotNull
        private String cognome;
        @NotNull
        private int maxOrder;
        @NotNull
        private int valoteTotOrdini;
    
    
        public Fornitore() {
        }
    
    
        public Fornitore(String id, String nome, String cognome, int maxOrder, int valoteTotOrdini) {
            this.id = id;
            this.nome = nome;
            this.cognome = cognome;
            this.maxOrder = maxOrder;
            this.valoteTotOrdini = valoteTotOrdini;
        }
    
    
        public String getId() {
            return id;
        }
    
    
        public void setId(String id) {
            this.id = id;
        }
    
    
        public String getNome() {
            return nome;
        }
    
    
        public void setNome(String nome) {
            this.nome = nome;
        }
    
    
        public String getCognome() {
            return cognome;
        }
    
    
        public void setCognome(String cognome) {
            this.cognome = cognome;
        }
    
    
        public int getMaxOrder() {
            return maxOrder;
        }
    
    
        public void setMaxOrder(int maxOrder) {
            this.maxOrder = maxOrder;
        }
    
    
        public int getValoteTotOrdini() {
            return valoteTotOrdini;
        }
    
    
        public void setValoteTotOrdini(int valoteTotOrdini) {
            this.valoteTotOrdini = valoteTotOrdini;
        }
    
    
    }

    Aiuto!!
    Ultima modifica di LeleFT; 03-06-2019 a 09:35 Motivo: Aggiunti i tag CODE

Tag per questa discussione

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.