Re: Does CORBA::ORBIT place any constraints on the IIOP?



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 anonymous anoncvs3 gnome org  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   selander pdc kth se
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;
  }
}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]