NamingException

Status
Nicht offen für weitere Antworten.

puck

Mitglied
Hallo zusammen,
ich habe ein kleines Problem. Und zwar möchte ich von meinem Servlet aus EJB-Session-Beans ansprechen. Die Beans sind vorhanden und auch schon getestet, die sollten funktionieren.
Nein was im Moment bei mir Konfusion erzeugt ist die Warnungen die Eclipse ausgibt, und daß mein Servlet dann auch wirklich zu einem Exception führt.
Lange Rede, kurzer Sinn, hier kommts:
Code:
private void createBank(String bankname, String blz)
  {
    try{
      InitialContext initialContext = new InitialContext();
    
      Object objAdminSession = initialContext.lookup("java:comp/env/AdminSession");
    }catch (NamingException ne) {}
    AdminSession myAdmin = (AdminSession) PortableRemoteObject.narrow(objAdminSession, AdminSession.class);
    
    myAdmin.erzeugeBank(blz, bankname);
    
  }

Als Warnung bekomme ich folgende Meldung: "Unhandlet Exception type NamingException"

Was muss ich hier noch verändern?

Gruss Christian
 
G

Gast

Gast
Was ist denn die genaue Exception?
Die Exception wird im Catch Block "weggedrückt", da {} statt
{ e.printStackTrace();} implementiert ist.

Gruss Martin
 
S

SlaterB

Gast
das Problem, ist, dass an anderer Stelle noch Exception auftreten können und diese bisher nicht durch try/ catch abgefangen werden,

in welcher Zeile, 8?
versuch mal diese ins try/ catch zu verschieben,
oder klicke das Warndreieck an und lasse Eclipse noch ein try/ catch erstellen
 

puck

Mitglied
Ja, ich habe das ganze jetzt etwas umgestellt:
Code:
private void createBank(String bankname, String blz)
  {
    Object objAdminSession = null;
    try{
      InitialContext initialContext = new InitialContext();
    
     objAdminSession = initialContext.lookup("java:comp/env/ejb/Admin");
    }catch (NamingException ne) { throw new IllegalStateException ("Zugriff auf initialContext fehlgeschlagen " + ne.toString()); }
    AdminSession myAdmin = (AdminSession) PortableRemoteObject.narrow(objAdminSession, AdminSession.class);
    
    myAdmin.erzeugeBank(blz, bankname);

    
  }

Bekomme jetzt aber ein Exception vom Typ "java.lang.ClassCastException".

Edit: das hat sich aber auch jetzt geklärt. Das RemoteInterface heist bei mir AdminRemote und es ist ja das Remote-Interface, das ich aufruf!


Gruss Christian
 
G

Guest

Gast
puck hat gesagt.:
Code:
AdminSession myAdmin = (AdminSession) PortableRemoteObject.narrow(objAdminSession, AdminSession.class);
Das kann die ClassCastException auslösen. Das sollte man statt dessen so schreiben:
Code:
if (java.rmi.Remote.class.isAssignableFrom(AdminSession.class))
    AdminSession myAdmin = (AdminSession) PortableRemoteObject.narrow(objAdminSession, AdminSession.class);
Aber ich hab in meinem Programm gerade den Fall, dass mich das auch nicht vor einer ClassCastException schützt und keine Ahnung warum die trotzdem fliegt ... :shock:

Grüße, frsichfisch.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A NamingException: Could not dereference object Allgemeines EE 4

Ähnliche Java Themen

Neue Themen


Oben