no to jeszcze raz to jest kod
import MonitorowanieApp.;
import org.omg.CosNaming.;
import org.omg.CosNaming.NamingContextPackage.;
import org.omg.CORBA.;
import org.omg.PortableServer.;
import org.omg.PortableServer.POA;
import java.io.;
import java.util.Properties;
class MonitorowanieImpl extends MonitorowaniePOA{
private ORB orb;
public void setORB(ORB orb_val){
orb = orb_val;
//System.out.println(orb);
}
}
class zal extends Thread {
private ORB orb;
/* public void wezorb(ORB orb_wart){
orb = orb_wart;
System.out.println(orb);
}*/
public void run(){
try{
System.out.println("tutaj powinno byc");
System.out.println(orb);
orb.run();
}
catch (Exception e){
System.err.println("@@@ERRORRRRR: " +e);
e.printStackTrace(System.out);
}
}
}
class watek extends Thread {
public void run(){
//System.out.println("TNA DZIALA");
}}
public class Agent{
public static void main(String args[]){
ORB orb = ORB.init(args, null);
try{
orb = ORB.init(args, null);
POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
//System.out.println(orb);
MonitorowanieImpl monitorowanieImpl = new MonitorowanieImpl();
monitorowanieImpl.setORB(orb);
org.omg.CORBA.Object ref = rootpoa.servant_to_reference(monitorowanieImpl);
Monitorowanie href = MonitorowanieHelper.narrow(ref);
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
String name = "Monitorowanie";
NameComponent path[] = ncRef.to_name( name );
ncRef.rebind(path, href);
System.out.println("Wybierz informacje jakie chcesz pobierac z serwera");
zal z = new zal();
z.start();
}catch (Exception e) { System.out.println("Blad w mainie"); }
watek w = new watek();
w.start();
}
}
ta metoda wezorb nie pomoze bo w momencie kiedy odpalane jest z.start(); to nic tam nie ma,
nalepiej byloby w metodzie run odwolac sie do main i z tad pobrac orb, poniewaz wartosc orb jest ustalana dopiero w main wiec nie moge wczesniej czyli albo odwolac sie do klasy Agent run() ale tam nie zobaczy orb bo jest dopiero w main wiec trzeba by bylo jakos Agent.main no ale tak sie chyba nie da?
2 opcja to przy z.start() podac orb ale tez nie bardzo to wychodzi, jest jakies rozwiazanie tego czy po prostu tego sie nie da zrobic?