Hallo,
ich habe eine stateless Session Bean mit einer einzigen Methode die nur eine Exception wirft. Ich greife auf die EJB über ein remote Interface zu, und ich verstehe nicht warum die Exception nicht normal im Client ankommt.
Es gibt jedes mal folgende Exception:
Der Client tut folgendes:
In der EJB sieht doit() so aus:
Im remote Interface ist die Exception auch angegeben:
Und wenn ich statt der Exception eine eigene Exception mit dem Namen TestException werfe (Interfaces natürlich entsprechend angepasst), dann gibt es folgende Exception:
Es sieht so aus als würde der applicationclient1 die TestException nicht kennen. Er kennt sie aber.
Ich konnte leider über Google noch keine Dokumentation zu genau dem Thema finden, falls mir jemand einen Tipp oder einen Link geben könnte wäre ich sehr dankbar.
Grüsse,
Sven
ich habe eine stateless Session Bean mit einer einzigen Methode die nur eine Exception wirft. Ich greife auf die EJB über ein remote Interface zu, und ich verstehe nicht warum die Exception nicht normal im Client ankommt.
Es gibt jedes mal folgende Exception:
Code:
Exception: [Ljava.lang.StackTraceElement;
java.lang.ClassNotFoundException: [Ljava.lang.StackTraceElement;
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
...
Der Client tut folgendes:
Code:
try{
InitialContext ic = new InitialContext();
ExSessionRemote remote = (ExSessionRemote) ic.lookup("ExSessionBean/remote");
remote.doit();
}
catch(Exception e){
System.out.println("Exception: "+e.getMessage());
e.printStackTrace();
}
In der EJB sieht doit() so aus:
Code:
public void doit() throws Exception {
throw new Exception();
}
Im remote Interface ist die Exception auch angegeben:
Code:
@Remote
public interface ExSessionRemote {
public void doit() throws Exception;
}
Und wenn ich statt der Exception eine eigene Exception mit dem Namen TestException werfe (Interfaces natürlich entsprechend angepasst), dann gibt es folgende Exception:
Code:
java.lang.reflect.UndeclaredThrowableException
at $Proxy0.doit(Unknown Source)
at applicationclient1.Main.main(Main.java:32)
Caused by: java.lang.ClassNotFoundException: [Ljava.lang.StackTraceElement;
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
Es sieht so aus als würde der applicationclient1 die TestException nicht kennen. Er kennt sie aber.
Ich konnte leider über Google noch keine Dokumentation zu genau dem Thema finden, falls mir jemand einen Tipp oder einen Link geben könnte wäre ich sehr dankbar.
Grüsse,
Sven