Hallo zusammen,
vor zwei Semestern hatte ich JavaEE noch im Studium. Nun wollte ich das ganze nochmal ein bisschen auffrischen, indem ich selbst ein bisschen damit rumprobiere. Leider scheitert es schon am kleinst möglichen Projekt.
Was ich haben möchte:
Folgende Projekte:
Ich habe nun im Application Client einen Button. Wenn ich auf diesen Button klicke, wird die Methode "checkPassword" einer DAO Klasse (im gleichen Projekt) aufgerufen. Das DAO soll nun die selbe Methode auf dem Server ausführen (die aktuell nur true zurück liefert).
Hier die Methode der GUI:
und die DAO Klasse:
Hier die Remote Klasse:
Und die Stateless Bean:
Was ist das Problem:
Die Variable "uRemote", also die Remote Bean ist IMMER null. Ich kriege folglich eine Nullpointer Exception.
Wenn ich die DAO Klasse weglasse und direkt in der GUI "uRemote" erzeuge mit der EJB Annotation funktioniert alles, wie es soll.
Es scheint also, als wäre ich in der DAO Klasse irgendwie "außerhalb des Kontextes". Was fehlt?
Danke im Voraus,
lg Toto
edit: Im Server Log bekomme ich außerdem ständig folgende Ausgabe:
Warnung: ACDEPL112: Error attempting to process extensions from the manifest of JAR file C:\Users\xyz\Desktop\glassfishv3\glassfish\domains\gfdom\generated\xml\EA\EAppClient_jar\lib\ClassLibrary.jar; ignoring it and continuing
vor zwei Semestern hatte ich JavaEE noch im Studium. Nun wollte ich das ganze nochmal ein bisschen auffrischen, indem ich selbst ein bisschen damit rumprobiere. Leider scheitert es schon am kleinst möglichen Projekt.
Was ich haben möchte:
Folgende Projekte:
- Enterprise Application
- Class Library (Für die Entitys und für die Remote Beans)
- EJB Projekt mit Persistence Unit und Beans
- Application Client
Ich habe nun im Application Client einen Button. Wenn ich auf diesen Button klicke, wird die Methode "checkPassword" einer DAO Klasse (im gleichen Projekt) aufgerufen. Das DAO soll nun die selbe Methode auf dem Server ausführen (die aktuell nur true zurück liefert).
Hier die Methode der GUI:
Java:
private void loginPerform(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(rootPane, DAO.checkPassword(null, null));
}
und die DAO Klasse:
Java:
package business;
import beans.UserRemote;
import javax.ejb.EJB;
public class DAO {
@EJB
public static UserRemote uRemote;
public static boolean checkPassword(String nick, String password) {
return uRemote.checkPassword(nick, password);
}
}
Hier die Remote Klasse:
Java:
package beans;
import javax.ejb.Remote;
@Remote
public interface UserRemote {
public boolean checkPassword(String nick, String password);
}
Und die Stateless Bean:
Java:
package beans;
import javax.ejb.Stateless;
@Stateless
public class User implements UserRemote {
@Override
public boolean checkPassword(String nick, String password) {
return true;
}
}
Was ist das Problem:
Die Variable "uRemote", also die Remote Bean ist IMMER null. Ich kriege folglich eine Nullpointer Exception.
Wenn ich die DAO Klasse weglasse und direkt in der GUI "uRemote" erzeuge mit der EJB Annotation funktioniert alles, wie es soll.
Es scheint also, als wäre ich in der DAO Klasse irgendwie "außerhalb des Kontextes". Was fehlt?
Danke im Voraus,
lg Toto
edit: Im Server Log bekomme ich außerdem ständig folgende Ausgabe:
Warnung: ACDEPL112: Error attempting to process extensions from the manifest of JAR file C:\Users\xyz\Desktop\glassfishv3\glassfish\domains\gfdom\generated\xml\EA\EAppClient_jar\lib\ClassLibrary.jar; ignoring it and continuing
Zuletzt bearbeitet: