Application Client NullPointerExc

thoto1111

Mitglied
Hallo lieber Forenmitglieder,
ich bräuchte dringend eure Hilfe.
Ich habe einen Client, welcher Remote auf ein Interface zugreift um dann schließlich über die EJB einen User anlegen soll. Nachdem ich allerdings meinen "Button" (im Client) drücke bekomm ich folgende Fehlermeldung!

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at gui.GUIClient$2.actionPerformed(GUIClient.java:116)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonList
....

Mein Code sieht folgendermaßen aus:

CLIENT:
Java:
	btnAdduser = new JButton("AddUser");
		btnAdduser.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				nachname = textField.getText();
				vorname = textField_1.getText();
				//TUser user = new TUser();
				//user.setNachname(nachname);
				//user.setVorname(vorname);
				//remoteinterface.add();
				//userejb.saveUser(user);
				remoteinterface.setUser(nachname, vorname);
				//remoteinterface.setNachname(textField.getText());
				//remoteinterface.setVorname(textField_1.getText());
				System.out.println(nachname);
				System.out.println(vorname);
			}
		});

INTERFACE:
Java:
@Remote
public interface RemoteInterface {

	void setNachname(String nachname);

	void setVorname(String vorname);

	void add();
	
	void setUser(String nachname, String vorname);
	
}

EJB:
Java:
@Override
	public void setUser(String nachname, String vorname) {
		TUser user1 = new TUser();
		user1.setNachname(nachname);
		user1.setVorname(vorname);
		em.merge(user1);
	}
 
Ich markiere die entscheidende Zeile im Trace.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at gui.GUIClient$2.actionPerformed(GUIClient.java:116)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonList

Da du nur einen Teil deiner Sourcen angegeben hast, weiß ich nicht, was bei dir nun in Zeile 116 steht.
Aber in dieser Zeile ist eine Variable, die in einem Ausdruck vorkommt, NULL.
Schau dir an, ob textField, textField_1 und remoteinterface richtig initialisiert worden sind, bzw. ob der entsprechende Code auch wirklich aufgerufen worden ist.
 
textField und textField1 lesen aus eine jTextField die Daten aus, wenn ich remoteinterface.set... auskommentiere und mir textfield und textfield1 ausgeben lasse per system.out.print dann sind die werte eben nicht NULL!
sonder werden je nachdem was ich in die Textfelder eintippe richtig ausgegeben. :/
 
In meiner GUIClient Klasse wie folgt:
Java:
@EJB
	RemoteInterface remoteinterface;

Und natürlich als Interface wie folgt:

Java:
@Remote
public interface RemoteInterface extends Serializable{

	void setNachname(String nachname);

	void setVorname(String vorname);

	void add();
	
	public void setUser(String nachname, String vorname);
	
	
	
}
 
Zuletzt bearbeitet:
Also in meiner EJB wird es dann Initialisiert?!
Java:
@Override
	public void setUser(String nachname, String vorname) {
		TUser user1 = new TUser();
		user1.setNachname(nachname);
		user1.setVorname(vorname);
		em.merge(user1);
	}
 
Wie erzeugt du denn dein GUI Objekt ?
Wenn mich nicht alles täuscht, dann machst du es mit einem einfachen new.
Damit wird aber kein EJB injected.

In diesem Fall müsstest du dein EJB Objekt aus dem JNDI initialisieren.
 

Neue Themen


Zurück
Oben