D
Der Dieter
Gast
Hallo,
ich bin ganz neu in der Java EE Welt, deswegen diese Frage, die für euch vermutlich leicht erscheint.
Also ich habe in einem Bean (EJB 3, GlassFish) eine Methode schreiben, welches mir ein Objekt von einer eigenen Klasse, die innerhalbs des Beans ist, zurückgibt.
Also der Aufbau ist wie folgt:
ejb:
Session.java
SessionBean.java
User.java
Dann mein Client:
Wenn ich es ausführe, erhalte ich immer folgende Fehlermeldung:
nested exception is: java.rmi.MarshalException: CORBA MARSHAL 1398079695 No; nested exception is:
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 207 completed: No
Könnte mir jemand helfen, wodran es liegt? Irgendwie find ich nix zum Thema, wobei mir vermutlich auch die richtigen Suchwörter fehlen.
Wenn ich die SessionBean wie folgt abändere (ebenso das Interface und den Client anpasse):
Dann klappt es einwandfrei. Der Client gibt mir 'Max Musterman' aus.
Ebenso wenn ich bei public String getUser() z.B. eine Exception vom Typ User werfe (User dann von Exception abgeleitet), dann kann ich im catch Block des Clients auf ((User)ex).getUsername() zugreifen.
Wäre echt super, wenn mir jemand den Wink mit dem Zaunpfahl geben könnte.
ich bin ganz neu in der Java EE Welt, deswegen diese Frage, die für euch vermutlich leicht erscheint.
Also ich habe in einem Bean (EJB 3, GlassFish) eine Methode schreiben, welches mir ein Objekt von einer eigenen Klasse, die innerhalbs des Beans ist, zurückgibt.
Also der Aufbau ist wie folgt:
ejb:
Session.java
Code:
package shop;
import javax.ejb.Remote;
@Remote
public interface Session {
public User getUser();
}
SessionBean.java
Code:
package shop;
import javax.ejb.Stateless;
import javax.ejb.Remove;
@Stateless
public class SessionBean implements Session {
public User getUser() {
return new User();
}
}
User.java
Code:
package shop;
public class User {
public String getUsername() {
return "Max Mustermann";
}
}
Dann mein Client:
Code:
package shopClient;
import shop.Session;
import shop.User;
import javax.ejb.EJB;
public class ShopClient {
@EJB
private static Session ses;
public static void main(String[] args) {
try {
User us = ses.getUser();
System.out.println(us.getUsername());
} catch(Exception ex) {
System.out.println("Error: "+ ex.getMessage());
}
}
}
Wenn ich es ausführe, erhalte ich immer folgende Fehlermeldung:
nested exception is: java.rmi.MarshalException: CORBA MARSHAL 1398079695 No; nested exception is:
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 207 completed: No
Könnte mir jemand helfen, wodran es liegt? Irgendwie find ich nix zum Thema, wobei mir vermutlich auch die richtigen Suchwörter fehlen.
Wenn ich die SessionBean wie folgt abändere (ebenso das Interface und den Client anpasse):
Code:
package shop;
import javax.ejb.Stateless;
import javax.ejb.Remove;
@Stateless
public class SessionBean implements Session {
public String getUser() {
return new User().getUsername();
}
}
Dann klappt es einwandfrei. Der Client gibt mir 'Max Musterman' aus.
Ebenso wenn ich bei public String getUser() z.B. eine Exception vom Typ User werfe (User dann von Exception abgeleitet), dann kann ich im catch Block des Clients auf ((User)ex).getUsername() zugreifen.
Wäre echt super, wenn mir jemand den Wink mit dem Zaunpfahl geben könnte.