Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Niente, ho provato anche quest'altro esempio, e a includere anche la libreria appserv-rt.jar di glassfish, ma non c'è verso. L'errore è sempre quello:

    codice:
    Exception in thread "main" java.lang.NullPointerException
    	at ejb30.SfulAppClient.main(SfulAppClient.java:11)
    E sempre nello stesso punto (più o meno):
    codice:
    sful.setId("duke");
    ovvero non appena si tenta di accedere al Bean. È come se appunto non venisse inizializzato nel container.
    Non so più cosa pensare sinceramente.



  2. #12
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    fai che i build di costruzione te li fai a mano (non li fai fare all'IDE) e poi una pulizia del web container (pulizia totale) e re-deploy.
    RTFM Read That F*** Manual!!!

  3. #13
    Sostanzialmente mi stai dicendo di usare un semplice editor di testo fare tutto da riga di comando. OK...

    Una domanda intanto: dato che stiamo parlando di EJB che implementa un'interfaccia marcata come @Remote, perché sul client, non viene specificato l'indirizzo IP dell'Application Server? Questa cosa mi sfugge proprio.
    È anche vero che quando vado a fare il deploy dell'EAR, questo contiene anche l'applicazione client, ma alla fine il client lo lancio a parte, e non è detto che sia per forza sullo stesso host dove gira Glassfish.

  4. #14
    OK, ci siamo.

    Ho fatto tutto da riga di comando e dovrei aver fatto un passo avanti.
    L'EJB viene caricato perfettamente sull'AS, e il deploy è corretto.

    Per quel che riguarda le applicazioni Client, SfulJavaClient funziona dopo aver opportunamente settato il classpath, mentre quando lancio SfulAppClient, ottengo questo errore:

    codice:
    Exception in thread "main" java.lang.NullPointerException
            at ejb30.SfulAppClient.main(SfulAppClient.java:11)
    E ovviamente la riga incriminata è sempre questa:

    codice:
    sful.setId("duke");
    Direi che non funziona la Dependency Injection.

    Comunque mi rimangono i dubbi riguardo quello che ho scritto prima.


    A proposito, ho aggiunto anche i seguenti percorsi al classpath nelle proprietà del progetto in Eclipse, per quel che riguarda SfulJavaClient.java, e questo parte anche da Eclipse:
    codice:
    /opt/glassfish3/glassfish/modules/*.jar
    /opt/glassfish3/glassfish/modules/endorsed/*.jar
    /opt/glassfish3/mq/lib/*.jar
    Facendo la stessa cosa per quel che riguarda l'altra classe di test SfulAppClient.java quest'ultima ancora non funziona ed ottengo sempre lo stesso errore. Non funziona neanche aggiungendo al classpath /opt/glassfish3/glassfish/lib/*.jar.

    EDIT: ho visto che NetBeans usa questo classpath, ma anche usando tale classpath sulla mia applicazione di test non funziona.


    Inoltre ho letto questa discussione, e a quanto pare, dovrei usare "appclient" di Glassfish, per far girare quell'applicazione. Però ancora devo capire come funziona.

  5. #15
    OK!

    Finalmente ho risolto anche la questione della Dependency Injection.

    La soluzione è la seguente (inerente l'esempio SfulAppClient):

    • Prima va creato il JAR file
    • Poi bisogna far girare l'applicazione usando appclient di Glassfish


    Il JAR file, lo creo nel seguente modo:
    codice:
    jar -cvmf ManifestApp sful-ejb.jar ejb30/
    Dove il contenuto di ManifestApp è il seguente:
    codice:
    Manifest-Version: 1.0
    Main-Class: ejb30.SfulAppClient
    Created-By: 1.6.0_31 (Sun Microsystems Inc.) 
    Class-Path: /opt/glassfish3/glassfish/modules/*
      /opt/glassfish3/glassfish/modules/endorsed/*
      /opt/glassfish3/mq/lib/*
    Per far girare la classe che usa la Dependency Injection invece uso questo comando:
    codice:
    /opt/glassfish3/glassfish/bin/appclient -client ./sful-ejb.jar -mainclass ejb30.SfulAppClient
    Svelato l'arcano quindi.... ora resta da capire come usare appclient da Eclipse.

    Scusate i post consecutivi ma ritengo siano più leggibili, rispetto ad un post chilometrico.

  6. #16
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Esatto, hai capito l'ordine con cui vanno fatte le operazioni (e risolto il problema).
    Se inizi a decifrare i build.xml di netbeans noti che queste operazioni le fa per te nello stesso ordine (da qui quando ti dicevo non capisci bene il giro che fai).
    RTFM Read That F*** Manual!!!

  7. #17


    Ora l'unica cosa che non capisco bene è la seguente: la dependency injection, e quindi l'uso dell'annotation @EJB, non si può usare da un client remoto?
    In ogni caso quindi devo sempre usare l'altro sistema con il context, etc. se devo usare il bean da remoto?

  8. #18
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    guarda su questo non sono sicurissima quindi preferisco non darti conferme, magari guarda bene la documentazione
    RTFM Read That F*** Manual!!!

  9. #19
    Grazie! Lo stavo già facendo! Spero di trovare chiarimenti!

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.