Hallo liebe Community,
da ich im Moment dabei bin mich in EJBs einzuarbeiten und gerade ein bisschen rumteste, steh ich nun vor einem nicht ganz unerheblichen Problem bei dem ich leider nicht alleine weiter komme
Situation sieht wie folgt aus:
Glassfish Server lokal: check
Mysql Server: check
Datenbank namens "appservertest" erstellt: check
Tabelle namens "users" mit Felder: "ID", "Vorname", "Nachname": check
JDBC Pool und Ressource erstellt: Ping erfolgreich
Es geht darum nur einen einzigen Testeintrag in die Tabelle zu schreiben um zu schaun wie das ganze funktioniert. Client ruft vom Bean nur einen Funktion auf und übergibt zwei Strings: Vorname, Nachname.
Bean sieht wie folgt aus:
Interface:
soweit so gut
Implementation:
Bean exportiert und in Auto Deplay gehaun, erfolgreich aktiviert, Client gestartet, Funktion aufgerufen,................kein Eintrag in der Tabelle
sie ist immer noch leer 
Habe ich vielleicht etwas falsch gemacht oder sogar vergessen? Ich hoffen jemand von euch kann mir weiterhelfen
PS: Nicht wundern die Parameter werden noch nicht gebraucht in der Funktion, wollte es erst mit festen Werten probieren.
Gruß Martin
da ich im Moment dabei bin mich in EJBs einzuarbeiten und gerade ein bisschen rumteste, steh ich nun vor einem nicht ganz unerheblichen Problem bei dem ich leider nicht alleine weiter komme
Situation sieht wie folgt aus:
Glassfish Server lokal: check
Mysql Server: check
Datenbank namens "appservertest" erstellt: check
Tabelle namens "users" mit Felder: "ID", "Vorname", "Nachname": check
JDBC Pool und Ressource erstellt: Ping erfolgreich
Es geht darum nur einen einzigen Testeintrag in die Tabelle zu schreiben um zu schaun wie das ganze funktioniert. Client ruft vom Bean nur einen Funktion auf und übergibt zwei Strings: Vorname, Nachname.
Bean sieht wie folgt aus:
Interface:
Java:
import java.sql.SQLException;
import javax.ejb.*;
import javax.naming.NamingException;
@Remote
public interface SimpleBean {
public void mysqlinsertUser(String vorname, String nachname) throws NamingException, SQLException;
}
soweit so gut
Implementation:
Java:
import java.sql.*;
import javax.ejb.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
@Stateless(name="Example", mappedName="ejb/SimpleBeanJNDI")
public class SimpleBeanImp implements SimpleBean{
public void mysqlinsertUser(String vorname, String nachname) throws NamingException, SQLException {
Connection conn = null;
try{
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("NTAlumni");
conn = ds.getConnection();
Statement stmt = conn.createStatement();
stmt.executeUpdate("INSERT INTO 'users' ('ID','Vorname',Nachname') VALUES ('0', 'Max', 'Mustermann');");
}catch(SQLException e){
conn.close();
}
}
}
Bean exportiert und in Auto Deplay gehaun, erfolgreich aktiviert, Client gestartet, Funktion aufgerufen,................kein Eintrag in der Tabelle
Habe ich vielleicht etwas falsch gemacht oder sogar vergessen? Ich hoffen jemand von euch kann mir weiterhelfen
PS: Nicht wundern die Parameter werden noch nicht gebraucht in der Funktion, wollte es erst mit festen Werten probieren.
Gruß Martin