Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Errore di cast in java

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883

    Errore di cast in java

    Ho un ejb così composto

    HOME INTERFACE

    package stampa;

    import javax.ejb.*;
    import java.rmi.RemoteException;

    public interface test2Home extends EJBHome
    {
    public test2 create()
    throws CreateException, RemoteException;

    }

    REMOTE INTERFACE

    package stampa;

    import javax.ejb.*;
    import java.rmi.RemoteException;

    public interface test2 extends EJBObject
    {
    public void start() throws RemoteException;
    public void dumpClassloader (ClassLoader loader, String ejbName)
    throws RemoteException;
    }

    EJB
    vari metodi tra cui il metodo start...

    CLIENT

    riporto solo il codice che interessa

    LINEA 1 Context ctx = getInitialContext();
    LINEA 2 test2Home home2 = (test2Home) ctx.lookup("test2");
    test2 the_ejb2 = home2.create();
    the_ejb2.start();
    the_ejb2.remove();

    Alla linea 2 mi dà un errore di Cast Exception
    Vedete dov'è l'errore?

  2. #2
    Io faccio così quando devo prelevare una home:
    in un metodo di una classe di utility, chiamato getEjbHome, passo due parametri: il nome dell'interfaccia ed il tipo di classe
    Codice PHP:
       public static Object getEJBHome(String name, Class type){
        try{
          
    InitialContext ctx = new InitialContext();
          
    Object actual ctx.lookup(name);
          return 
    PortableRemoteObject.narrow(actualtype);
        }
        catch(
    NamingException ne){ 
          
    ne.printStackTrace();
          
    log.fatal("Naming Exception: Home " name " cannot be found");
        }
      } 
    quando devo richiamare questo metodo faccio:

    Codice PHP:
    test2Home home2 = (test2Home )EJBUtil.getEJBHome("test2"test2Home.class); 
    Il fatto di avere quella classe di utility è ininfluente, ma forse l'errore potrebbe essere legato al mancato utilizzo del metodo narrow.
    Oppure, potrebbe semplicemente essere un errore nel naming...

    ciao


  3. #3
    Utente di HTML.it L'avatar di Zalex
    Registrato dal
    Aug 2001
    Messaggi
    357
    da' un CastException quando in un cast (C)x il tipo dinamico di x non e' minore o uguale a C, cioe il tipo dinamico di x non e' una sottoclasse(diretta o indiretta) di C!
    in particolare il tipo che ritorna 'ctx.lookup("test2");' non e' un sottotipo di 'test2Home'

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    trovato l'errore
    nel file xml avevo scritto testhome invece di test2home

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.