[J2EE] EJB lookup levert na narrow null op

Pagina: 1
Acties:

  • Deddiekoel
  • Registratie: Maart 2000
  • Laatst online: 12-11-2025

Deddiekoel

Gadget nerd

Topicstarter
Ik ben erg nieuw in het hele J2EE gebeuren. Ik heb deze maand een cursus gedaan en wil nu zelf ook aan de slag. Ik heb een EJB gemaakt en deze mbv MyEclipse deployed op mijn Sun appserver (8.1Q2). Daarna heb ik keurig de stubs opgehaald en deze samen met j2ee.jar als library in een nieuwe java application project gezet om er een client app van te maken.

In deze clientapp gaat het echter mis. Ik gebruik de volgende code om de EJB op de zoeken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
try {
    Properties props = new Properties();
    props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
               "com.sun.jndi.cosnaming.CNCtxFactory");
    props.setProperty(Context.PROVIDER_URL,
               "iiop://localhost:3700");
    Context c = new InitialContext(props);
    Object obj = c.lookup(MessengerHome.JNDI_NAME);
    MessengerHome mh = 
        (MessengerHome) PortableRemoteObject.narrow(obj, MessengerHome.class);
    System.out.println(mh);
    messenger = mh.create();
    Vector ml = messenger.getMessageList();
    TrackerMessage tm = (TrackerMessage) ml.get(0);
    System.out.println(tm.getContent());
} catch (Exception e) {
    e.printStackTrace();
}


Bij "mh.create()" gaat het mis want blijkbaar is mh null. Ik weet nu alleen niet hoe dat kan! Want het Object dat ik vanuit de lookup terug krijg is wel een (com.sun.corba.se.impl.corba.CORBAObjectImpl) object. Mijn bean klasse zelf is verder een standaard stateless session bean waarbij alleen de getMessageList functie is toegevoegd. Alle deployment descriptors zijn mbv MyEclipse & XDoclet gegenereerd.

Verlanglijstje: Switch 2, PS5 Pro Most wanted: Switch 2


  • ari3
  • Registratie: Augustus 2002
  • Niet online
Vaag... Volgens de javadoc zou er geen null uit kunnen komen. De narrow methode gooit namelijk een ClassCastException indien obj niet getypeerd kan worden als MessengerHome klasse.

Plak anders even de stacktrace van de NullPointerException erbij... Ik heb zo'n vermoeden dat de NullPointerException uit je ejbCreate methode komt en niet omdat mh null is.

[ Voor 25% gewijzigd door ari3 op 30-08-2005 21:08 ]

"Kill one man, and you are a murderer. Kill millions of men, and you are a conqueror. Kill them all, and you are a god." -- Jean Rostand


  • Deddiekoel
  • Registratie: Maart 2000
  • Laatst online: 12-11-2025

Deddiekoel

Gadget nerd

Topicstarter
mh is echter wel null want de printout van "System.out.println(mh);" geeft dit aan.

Het is me inmiddels gelukt om het zooitje aan de praat te krijgen maar niet precies met bovenstaande code. Allereerst moest ik de appserv-rt.jar toevoegen en het werkte toen ik geen properties aan de initial context meegaf. Het werkt dus wel maar niet als ik een remote call wil doen...

Verlanglijstje: Switch 2, PS5 Pro Most wanted: Switch 2


Verwijderd

ari3 schreef op dinsdag 30 augustus 2005 @ 20:58:
De narrow methode gooit namelijk een ClassCastException indien obj niet getypeerd kan worden als MessengerHome klasse.
'null' casten levert dan ook geen ClassCastException ;)