Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [Java] EJB 3.0

  1. #1

    [Java] EJB 3.0

    Ciao a tutti,
    ho alcuni dubbi sul funzionamento degli EJB 3.0, nello specifico nell'uso della remote interface.

    Nel mio caso ho un ear composto da un modulo web (war) e uno ejb (jar). Entrambi i pacchetti sono dei package diversi che vengono compilati separatamente in fase di impacchettamento.

    Il mio problema è questo. Voglio invocare dal modulo web un metodo che sta nel modulo ejb.
    Per fare questo ho creato una remote interface nel modulo ejb:

    codice:
    package modulo.ejb
    
    @Remote 
    public interface ServiceRemote { 
    
         public Integer mioMetodo();
    
    }
    Nel modulo web per richiamare il mioMetodo ho creato la seguente classe:

    codice:
    package modulo.web
    
    public class miaClasseWeb{
    
         @EJB
         private ServiceRemote service;
        
         public void metodoChiamante() {
               service.mioMetodo();
         }
    }
    Per poter compilare il modulo web ho dovuto importare nel classpath la singola remote interface, ma in fase di run ho una bella nullpointer exception sull'oggetto service della miaClasseWeb.
    Come faccio a creare correttamente la mia chiamata remota?
    "Na' sedia te vojo tirà!"

  2. #2
    Prima di tutto assicurati che il modulo ejb sia stato deployato correttamente sul server.
    Seconda cosa assicurati che la "miaClasseWeb" sia all'interno di del CDI altrimenti, giustamente, l'ejb non ti viene iniettato e quindi otterrai appunto una bella NullPointerException.
    Quindi se la tua "miaClasseWeb" non è all'interno del CDI devi effettuare il lookup del ejb in maniera classica passando dall'InitialContext.

  3. #3
    Infatti con la "vecchia" lookup riesco a richiamare correttamente l'ejb.
    Ho letto la documentazione del CDI ma non ho capito che intendi quando dici che il modulo web ne deve essere all'interno...
    "Na' sedia te vojo tirà!"

  4. #4
    Originariamente inviato da Brazonet
    Infatti con la "vecchia" lookup riesco a richiamare correttamente l'ejb.
    Ho letto la documentazione del CDI ma non ho capito che intendi quando dici che il modulo web ne deve essere all'interno...
    Chi ha mai detto che il "modulo web" deve stare all'interno di CDI.
    Io ho detto che quella classe deve essere all'interno.
    Per far funzionare l'injection devi essere all'interno di CDI altrimenti (ovviamente) non può iniettare nulla.
    Per esempio se quella classe la fai diventare una Servlet vedrai come l'injection ti funziona.

  5. #5
    Originariamente inviato da francesco.muia
    Chi ha mai detto che il "modulo web" deve stare all'interno di CDI.
    Io ho detto che quella classe deve essere all'interno.
    Per far funzionare l'injection devi essere all'interno di CDI altrimenti (ovviamente) non può iniettare nulla.
    Per esempio se quella classe la fai diventare una Servlet vedrai come l'injection ti funziona.
    Ho capito ora... mi è successa in effetti la stessa cosa con le annotation di JMS. Fuori da una servlet non andavano.
    Grazie mille!
    "Na' sedia te vojo tirà!"

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    27
    Ciao, penso che io abbia un problema simile, so che è vecchia questa discussione, ma se riuscissi a ricordarti la soluzione mi saresti di aiuto:
    http://forum.html.it/forum/showthrea...readid=2918154
    il link del mio topic.... ciao!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non solo la discussione è vecchia e, pertanto, non va risollevata (come da regolamento interno).
    Ma quell'utente, per dirla tutta, non è più attivo nel forum da diverso tempo.

    Chiudo la discussione.


    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

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.