Re: Does CORBA::ORBIT place any constraints on the IIOP?
Anders Selander <[email protected]> Tue, 16 Apr 2002 14:41:22 +0200
| Newsgroups | gmane.comp.gnome.orbit.perl |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Apr 15, 2002 at 11:39:03PM +0900, Huw Rogers wrote: > Here's a patch for CORBA::ORBit 0.4.3 that brings it up to date with CVS > and further adds many bug fixes and patches I've made. Use with ORBit > stable 0.5.13 or later (not 0.5.12). Don't use ORBit2. Many thanks for the patches, Huw. It feels kind of nice to be running CORBA::ORBit 0.4.4. ;-) Which cvs would that be? Does it have anonymous access? All files wan not updated at [email protected]. Anyway, I patched a 0.4.3 into a 0.4.4 and did some testing with orbit 0.5.15-2 on a Debain Linux machine, to little avail (see below). Does others experience the same problem? > Put this at the beginning of your perl script before the > use CORBA::ORBit line: > BEGIN { unshift @ARGV, qw(-ORBIIOPIPv4 1); } > Now you have an interoperable Perl / CORBA binding. That is exactly the same as having "ORBIIOPIPv4=1" in one's .orbitrc, isn't it? Best Regards /Selander Anders Selander Centre for Parallel Computers [email protected] Programmer Royal Institute of Technology +46 (0)8 790 72 11 SE-100 44 STOCKHOLM, SWEDEN +46 (0)70 266 29 67 Java 1.3: > idlj -f all MyObject.idl > javac Server.java > java Server > ./client.pl Version: 0.4.4 (nothing more happens until one interrupts either the server or the client, same thing with Java 1.4) Java 1.2: > /usr/java/jdk1.2.2/bin/java Server3 > ./client.pl Version: 0.4.4 Exception: CORBA::UNKNOWN ('IDL:omg.org/CORBA/UNKNOWN:1.0') (3, COMPLETED_NO) The unknown exception But with Java1.2 and the server on a remote Solaris-machine: > ./client.pl Version: 0.4.4 Answer is 72. It is so utterly annoying! Files: MyObject.idl ------------ module my_module { interface MyObject { long name(); }; }; client.pl --------- #!/usr/bin/perl -w BEGIN { unshift @ARGV, qw(-ORBIIOPIPv4 1); } use strict; use CORBA::ORBit; my ($orb, $object, $ior); $orb = CORBA::ORB_init("orbit-local-orb"); $orb->load_idl_file("MyObject.idl"); open IOR, "ns.ref" or die "open failed: $!"; $ior = <IOR>; close IOR; chomp $ior; $object = $orb->string_to_object($ior); print "Version: ", $CORBA::ORBit::VERSION, "\n"; print "Answer is ", $object->name, ".\n"; Server.java ----------- import my_module.*; import org.omg.CORBA.*; import java.io.*; public class Server { public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); MyObject myRef = new MyObject(); orb.connect(myRef); String ior = orb.object_to_string(myRef); try { FileOutputStream fos = new FileOutputStream("ns.ref"); PrintStream ps = new PrintStream (fos); ps.print (ior); ps.close (); } catch (Exception ex) { ex.printStackTrace(); System.exit(0); } java.lang.Object sync = new java.lang.Object(); synchronized(sync){ sync.wait(); } } catch(Exception e) { System.err.println("ERROR: " + e); e.printStackTrace(System.out); } } } class MyObject extends _MyObjectImplBase { public int name() { return 72; } }