Evo delova koda, tj. put koji prelazi objekat od klijenta do servera (nadam se da je dovoljno i da vas ne mrzi da citate :-)) Hvala unapred!
(KLIJENT, sve polazi od forme)
...
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
try{
String rbr=regPolje.getText();
String marka=(String)markaKombo.getSelectedItem();
String tip=(String)tipKombo.getSelectedItem();
Integer god=Integer.parseInt(godistePolje.getText());
String vl=vlasnikPolje.getText();
Integer kmt=Integer.parseInt(km.getText());
KontrolerKI.proslediVrK(rbr,marka,tip,god,vl,kmt,0); System.out.println(rbr+marka+tip+god+vl+kmt);
if (KontrolerKI.poruka==32) regPolje.setText("");
if (KontrolerKI.poruka==31) dispose();
}
catch(NumberFormatException nfe){JOptionPane.showMessageDialog(null,"Nepravilan unos [godiste ili kilometraza]!","GRESKA",JOptionPane.WARNING_MESSAGE);}
catch(Exception re){re.printStackTrace();}
}//GEN-LAST:event_jButton1ActionPerformed
...
public class KontrolerKI {
static OpstiDO odo;
static Karton karton;
static Intervencija interv;
static Radnik radnik;
static int brClListe;
public static int poruka;
static int znakZaAkt=0;
/** Creates a new instance of KontrolerKI */
static KontrolerAL klijentskiObjekat;
public static void pokreniRMI() throws Exception{
try {
System.setSecurityManager(new RMISecurityManager());
String adresa = "127.0.0.1";
klijentskiObjekat = (KontrolerAL)Naming.lookup("rmi://"+adresa+"/SO");
Glavni.main(new String[]{});
} catch (RemoteException ex) {
ex.printStackTrace();
} catch (MalformedURLException ex) {
ex.printStackTrace();
} catch (NotBoundException ex) {
ex.printStackTrace();
}
}
public static void main(String args[]) {
try {
pokreniRMI();
} catch (Exception ex) {
ex.printStackTrace();
}
}
... izmedju su jos neke metode...
static void proslediVrK(String rbr, String marka, String tip, Integer god, String vl, Integer kmt, int znak){
try{
poruka=10;
karton=new Karton();
karton.Napuni(rbr,marka,tip,god,vl,kmt);
klijentskiObjekat.kreiraj(karton);} //ovde napuni karton i to je ok, medjutim kada ga primi kontoler aplikacione logike, svi atributi su null
catch...
(KontrolerAL je sa serverske strane, kao i domenski objekti(karton))
KontolerAL je interfejs, implementira ga KontrolerALImpl:
public class KontrolerALImpl extends UnicastRemoteObject implements KontrolerAL{
public static int poruka;
public KontrolerALImpl()throws RemoteException {
super();
}
public synchronized int kreiraj(OpstiDO odo){
System.out.println("do servera stiglo: "+odo.postaviVrednostiAtributa());// ovde prepozna da je karton ali...
return Kreiraj.kreiraj(odo);
}...
public class Kreiraj extends OpstaSO {
/** Creates a new instance of Kreiraj */
public static int kreiraj(OpstiDO odo) {
System.out.println("provera: "+odo.vratiImeKlase()+" "+odo.postaviVrednostiAtributa()); //
Kreiraj kr=new Kreiraj();
return kr.opsteIzvrsenjeSO(odo);
}
public int izvrsenjeSO(OpstiDO odo){
String Naziv;
if(odo.vratiImeKlase().equals("AktivnostInterv")){
Naziv=DBBR.vratiNazivIzSifarnika(odo.dajSifru());
odo.setNaziv(Naziv);
}
signal=DBBR.pamtiSlog(odo); //OVO SVE ODRADI OK I NE PRIJAVLJUJE GRESKU, ALI NARAVNO, U BAZI JE KOD STRINGOVA NULL, A ZA INTEGER NEMA NISTA
if(!stanjeOperacije(signal)) return 0;
return 1;
}
boolean stanjeOperacije(int signal){
switch (signal)
{
case 31:Prikazi(signal,"Uspesno kreiran novi slog"); return true;
case 32:Prikazi(signal,"Neuspesno kreiran novi slog");return false;
}
return false;
}
}
Iv