Implementing Java valuetypes in C++ for rmi-iiop (OBV)

So let me get this straight, for each Java serializable (valuetype) class
that we use in a C++/CORBA client, we have to implement the valuetype in
C++?
It seems silly for everyone to implement the Java class library valuetypes
in C++ (leaving aside the problems of getting the implementation correct).
Is anyone creating a C++ library for this purpose, or must we each reinvent
the wheel?
--Vince

A value type is analogous to a struct, but the code that is generated for it is a object with methods that the compiler will generally not allow you to ignore. As I understood it, the question was directed towards any possible implementers of a generic class library for the java types that result
from the generation of the value types in c++. I don't know of such library at this point... does anyone else?
Filip Hanik wrote:
my understanding is that
Java data is mapped to OMG IDL and that is mapped to C++.
So if you create a serializable java object, that becomes a struct in the IDL
which you can automatically generate your C++ code for.
does this help?
In article <8ibetb$oat$[email protected]>, [email protected] says...
So let me get this straight, for each Java serializable (valuetype) class
that we use in a C++/CORBA client, we have to implement the valuetype in
C++?
It seems silly for everyone to implement the Java class library valuetypes
in C++ (leaving aside the problems of getting the implementation correct).
Is anyone creating a C++ library for this purpose, or must we each reinvent
the wheel?
--Vince
Filip Hanik
Software Architect
XMarkstheSpot.com
[email protected]

Similar Messages

  • ClassCastException for RMI-IIOP client hitting CORBA server

    I am writing a RMI-IIOP client to connect to an existing CORBA C++ server. I started out with writing a RMI Interface mimicking the IDL and then converting into a stub using rmic -iiop option. I then use COSNaming to connect to the server. When I narrow the reference using PortableRemoteObject.narrow(), I get a ClassCastException. Probably because the object that I get from naming service will be a CORBA object which cannot be casted to RMI Interface object.
    Exception in thread "main" java.lang.ClassCastException
    at com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:229)
    at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)
    at com.att.cswd.poc.RMIIIOPClient.IMSConnect(RMIIIOPClient.java:46)
    at com.att.cswd.poc.RMIIIOPClient.main(RMIIIOPClient.java:27)
    Caused by: java.lang.ClassCastException: Object is not of remote type com.att.cswd.poc.CORBAInterface
    at com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:221)
    ... 3 more
    Code
                                    CORBAInterface ims;
              String tranCode="CRTUN130";
              byte[][] input_segs = null;
               try {
                    Hashtable hm = new Hashtable();
                    hm.put("java.naming.factory.initial", "com.sun.jndi.cosnaming.CNCtxFactory");
                    hm.put("java.naming.provider.url", "corbaloc:iiop:BSYS.MVS.SC.COM:14050/NameService");
                    Context initialNamingContext = new InitialContext(hm);
                   Object objref = initialNamingContext.lookup("O2K/AdapterInterface");
                   ims = (CORBAInterface) PortableRemoteObject.narrow(objref, CORBAInterface.class);
                   byte output_segs[][] = ims.run_transaction_binary(tranCode, input_segs);               
                   System.out.println ("Response is " + output_segs);
              } catch (NamingException e) {
                   e.printStackTrace();
              } catch (RemoteException e) {
                   e.printStackTrace();
              }

    I am writing a RMI-IIOP client to connect to an existing CORBA C++ serverAs it says in [the Javadoc|http://java.sun.com/j2se/1.5.0/docs/guide/rmi-iiop/rmiiiopUsing.html#when], you can't do that. For RMI/IIOP you have to start with a PortableRemoteObject and rmic -iiop. You can use a C++ client to that but you can't use an RMI/IIOP client to a C++ server.
    Use IDLJ.

  • Legal types for RMI/IIOP

    This is part of the EJB 2.0 spec
    business methods of a session bean
    The argument and return value types for a method must be legal types for RMI/IIOP if the
    method corresponds to a business method on the session bean�s remote interface.
    What are the "legal types for RMI/IIOP"?

    Curiously enough all Java types are legal. See http://www.omg.org/cgi-bin/doc?ptc/00-01-06.
    EJP

  • Obtaining an IOR for RMI-IIOP

    Hi -
    I'm working to modify a C program (gnuplot) so that it can remotely call functions in Java.
    My current plan is to use RMI-IIOP on the Java side. I'd like to create a class that implements java.rmi.Remote via some local implementation class, instantiate it, then obtain a stringified IOR for that object and pass it to gnuplot, which can then use the IOR to call remote methods.
    Also, I'm planning to use CORBA DII on the client side, since I want a generic program where the remote method names can be set by user options at run time.
    Does this make sense? I'm working with this tutorial code:
    http://java.sun.com/j2se/1.5.0/docs/guide/rmi-iiop/tutorial.html
    and am stuck on obtaining an IOR in the server code.
    Any help would be appreciated...

    Well, I figured it out. The key method is remoteToCorba in com.sun.jndi.toolkit.corba.CorbaUtils. Here's my server code:
    //HelloServer.java
    import java.io.*;
    import org.omg.CORBA.ORB;
    import com.sun.jndi.toolkit.corba.CorbaUtils;
    public class HelloServer {
        public static void main(String[] args) {
            try {
                // Step 1: Instantiate the Hello servant
                HelloImpl helloRef = new HelloImpl();
                // Step 2: Initialize the ORB
                ORB orb = ORB.init(args, null);
                // Step 3: Convert the Hello servant to a CORBA object
                org.omg.CORBA.Object corba_obj;
                corba_obj = CorbaUtils.remoteToCorba(helloRef, orb);
                // Step 4a: Announce the IOR to STDOUT
                String ior = orb.object_to_string(corba_obj);
                System.out.println("IOR: " + ior);
                // Step 4b: Announce the IOR to a file
                FileWriter fw = new FileWriter("hello.ior");
                fw.write(ior);
                fw.close();
                System.out.println("Hello Server: Ready...");
             } catch (Exception e) {
                System.out.println("Trouble: " + e);
                e.printStackTrace();
    }And here's the matching client code:
    //HelloClient.java
    import java.io.*;
    import org.omg.CORBA.ORB;
    import javax.rmi.PortableRemoteObject;
    public class HelloClient {
        public static void  main( String args[] ) {
            HelloInterface hi;
            try {
                // Step 1: Initialize the ORB
                ORB orb = ORB.init(args, null);
                // Step 2: Obtain the stringified IOR from a file
                FileReader fr = new FileReader("hello.ior");
                BufferedReader br = new BufferedReader(fr);
                String ior = br.readLine();
                // Step 3: Convert the IOR to a CORBA object reference
                org.omg.CORBA.Object objref = orb.string_to_object(ior);
                // Step 4: Narrow the CORBA object reference to the concrete type
                hi = (HelloInterface) PortableRemoteObject.narrow(
                    objref, HelloInterface.class);
                // Step 5: Invoke the method.
                hi.sayHello( " MARS " );
            } catch( Exception e ) {
                System.err.println( "Exception " + e + "Caught" );
                e.printStackTrace( );
                return;
    }The other two files are unchanged from the original example:
    //HelloInterface.java
    import java.rmi.Remote;
    public interface HelloInterface extends java.rmi.Remote {
       public void sayHello( String from ) throws java.rmi.RemoteException;
    //HelloImpl.java
    import javax.rmi.PortableRemoteObject;
    public class HelloImpl extends PortableRemoteObject implements HelloInterface {
       public HelloImpl() throws java.rmi.RemoteException {
           super();     // invoke rmi linking and remote object initialization
       public void sayHello( String from ) throws java.rmi.RemoteException {
           System.out.println( "Hello from " + from + "!!" );
           System.out.flush();
    }Compilation and usage is straightforward:
    javac *.java
    rmic -iiop HelloImpl
    java -cp . HelloServer
    java -cp . HelloClientIt gives warnings about using a Sun proprietary interface, but that's the only problem that I've had with the Java end. Getting the C end working has been more challenging. ORBit seems to have some serious interoperability problems. I haven't gotten it working yet with Java.

  • Clients for RMI-IIOP (help)

    hi,
    I am using RMI-IIOP(not using IDL) . I want to know if it
    possible to implement clients using C++ without haviNg IDL.
    thanx
    pradeep

    "pradeep bhat" <[email protected]> writes:
    I am using RMI-IIOP(not using IDL) . I want to know if it
    possible to implement clients using C++ without haviNg IDL.Possible but not necessarily any easier. You could use JNI or COM
    maybe.
    andy

  • Java IDL or RMI-IIOP

    Hi,
    I am hoping someone can help me on this topic.
    I have a corba client and I am going to implement a server in java.
    I was told to use RMI-IIOP to implement the server such that clients
    (corba or java) can send create/update/delete operation requests to the
    server. On the other hand, the server needs to send notifications back
    to the corba client side as a result of other unrelated operations. There is already an idl for the notification. In this case, how should I handle
    the notification part? Am I supposed to use java idl in this scenario?
    Any suggestions are welcome.
    Thanks,
    Pin

    Yes you must use IDL for this as you can't construct a C++ ser ver for RMI/IIOP.

  • How write rmi-iiop over ssl with weblogic server 6.1 - No server found

    //New
    Hello,
    I have written an appication like this:
    - An EJB server running on Weblogic server 6.1
    (named: BankServerHome)
    -A java client calling the BankServer.
    Platform: windows 2000 - jdk1.3
    Now I want to secure the communication with SSL protocol.
    I have done this:
    -generate a key peer with weblogic service named certificate.
    -send the CSR to a CA and place the answer into the weblogic
    server certificate directory.
    -update path for ServerCertificateChainFileName,
    ServerCertificateFileName, ServerKeyFileName into config.xml.
    -launch weblogicServer
         -> server certificate is recognized
         -> listening port 7001 and 7002.
    (-stop weblogicServer!)
    At now, all is all right, errors come hereafter:
    Then I follow the guideline "Programming weblogic Security" (version of 30/07/2001).
    "To use RMI over IIOP over SSL with a Java client, do the following:
    2. Extend the java.rmi.server.RMISocketFactory class to handle SSL socket
    connections. Be sure to specify the port on which WebLogic Server listens for
    SSL connections. For an example of a class that extends the
    java.rmi.server.RMISocketFactory class, see Listing 4-22.
    3. Run the ejbc compiler with the -d option.
    4. Add your extension of the java.rmi.server.RMISocketFactory class to the
    CLASSPATH of the Java client.
    5. Use the following command options when starting the Java client:
    -xbootclasspath/a:%CLASSPATH%
    -Dorg.omg.CORBA.ORBSocketFactoryClass=implementation of java.rmi.server.RMISocketFactory
    -Dssl.certs=directory location of digital certificate for Java client
    -Dssl.key=directory location of private key for Java client"
    At step 3. I found into documentation that -d is linked to a directory name.
    When I run ejbc with this option -d I have the message:
    "ERROR: You must specify an output directory or jar with the -d option to weblogic.ejbc."
    % So what option can I use to run ejbc for secure usage?
    At step 5. Whatever I write for -Dorg.omg.CORBA.ORBSocketFactoryClass,
    this pointed class is not instanciated.
    Then I can not create a socket with my client.
    The folowing exception is raised:
    javax.naming.CommunicationException [Root exception is java.net.ConnectException:
    No server found at T3S://localhost:7002]
    So, my questions are:
    % Why -Dorg.omg.CORBA.ORBSocketFactoryClass must be known by the client and not
    the server?
    My java client part, managing connection is:
    -------------------BEGIN OF CONNECTION MANAGER-------------------
    Properties env = new Properties ();
    // Shouldn't have to do this, but for now you must
    if ( factory.equals ("weblogic.jndi.WLInitialContextFactory") ) {
    env.put ("java.naming.provider.url", "t3s://localhost:7002");
    InitialContext context = new InitialContext (env);
    BankSessionServerHome bssh = (BankServerHome) context.lookup("BankServerHome");
    BankServer = bssh.create();
    -------------------END OF CONNECTION MANAGER-------------------
    I have also try
    env.put ("java.naming.provider.url", "corbaloc:iiop://localhost:7002");
    but it throws the following error
    javax.naming.InvalidNameException: url does not conatin !!!
    % What is the code for the java client allowing connection with the ejb?
    % And better, can I have a sample example for rmi-iiop over ssl?
    (...wlserver6.1\samples\examples\iiop\ejb\stateless\rmiclient\client.java do not
    speak ssl!)
    Any help will be appreciate from you...
    Best Regards.
    Oliver

    "oliver" <[email protected]> writes:
    The SSL support is poorly doc'd right now. We have fixed this and
    updated the way you do things in SP2. Please either wait for SP2 or
    contact support.
    andy
    I have written an appication like this:
    - An EJB server running on Weblogic server 6.1
    (named: BankServerHome)
    -A java client calling the BankServer.
    Platform: windows 2000 - jdk1.3
    Now I want to secure the communication with SSL protocol.
    I have done this:
    -generate a key peer with weblogic service named certificate.
    -send the CSR to a CA and place the answer into the weblogic
    server certificate directory.
    -update path for ServerCertificateChainFileName,
    ServerCertificateFileName, ServerKeyFileName into config.xml.
    -launch weblogicServer
         -> server certificate is recognized
         -> listening port 7001 and 7002.
    (-stop weblogicServer!)
    At now, all is all right, errors come hereafter:
    Then I follow the guideline "Programming weblogic Security" (version of 30/07/2001).
    "To use RMI over IIOP over SSL with a Java client, do the following:
    2. Extend the java.rmi.server.RMISocketFactory class to handle SSL socket
    connections. Be sure to specify the port on which WebLogic Server listens for
    SSL connections. For an example of a class that extends the
    java.rmi.server.RMISocketFactory class, see Listing 4-22.
    3. Run the ejbc compiler with the -d option.
    4. Add your extension of the java.rmi.server.RMISocketFactory class to the
    CLASSPATH of the Java client.
    5. Use the following command options when starting the Java client:
    -xbootclasspath/a:%CLASSPATH%
    -Dorg.omg.CORBA.ORBSocketFactoryClass=implementation of java.rmi.server.RMISocketFactory
    -Dssl.certs=directory location of digital certificate for Java client
    -Dssl.key=directory location of private key for Java client"
    At step 3. I found into documentation that -d is linked to a directory name.
    When I run ejbc with this option -d I have the message:
    "ERROR: You must specify an output directory or jar with the -d option to weblogic.ejbc."
    % So what option can I use to run ejbc for secure usage?
    At step 5. Whatever I write for -Dorg.omg.CORBA.ORBSocketFactoryClass,
    this pointed class is not instanciated.
    Then I can not create a socket with my client.
    The folowing exception is raised:
    javax.naming.CommunicationException [Root exception is java.net.ConnectException:
    No server found at T3S://localhost:7002]
    So, my questions are:
    % Why -Dorg.omg.CORBA.ORBSocketFactoryClass must be known by the client and not
    the server?
    My java client part, managing connection is:
    -------------------BEGIN OF CONNECTION MANAGER-------------------
    Properties env = new Properties ();
    // Shouldn't have to do this, but for now you must
    if ( factory.equals ("weblogic.jndi.WLInitialContextFactory") ) {
    env.put ("java.naming.provider.url", "t3s://localhost:7002");
    InitialContext context = new InitialContext (env);
    BankSessionServerHome bssh = (BankServerHome) context.lookup("BankServerHome");
    BankServer = bssh.create();
    -------------------END OF CONNECTION MANAGER-------------------
    I have also try
    env.put ("java.naming.provider.url", "corbaloc:iiop://localhost:7002");
    but it throws the following error
    javax.naming.InvalidNameException: url does not conatin !!!
    % What is the code for the java client allowing connection with the ejb?
    % And better, can I have a sample example for rmi-iiop over ssl?
    (...wlserver6.1\samples\examples\iiop\ejb\stateless\rmiclient\client.java do not
    speak ssl!)
    Any help will be appreciate from you...
    Best Regards.
    Oliver

  • How write rmi-iiop over ssl with weblogic server 6.1?

    Hello,
    I have written an appication like this:
    - An EJB server running on Weblogic server 6.1
    (named: BankServerHome)
    -A java client calling the BankServer.
    Platform: windows 2000 - jdk1.4
    Now I want to secure the communication with SSL protocol.
    I have done this:
    -generate a key peer with weblogic service named certificate.
    -send the CSR to a CA and place the answer into the weblogic
    server certificate directory.
    -update path for ServerCertificateChainFileName,
    ServerCertificateFileName, ServerKeyFileName into config.xml.
    -launch weblogicServer
         -> server certificate is recognized
         -> listening port 7001 and 7002.
    (-stop weblogicServer!)
    At now, all is all right, errors come hereafter:
    Then I follow the guideline "Programming weblogic Security" (version of 30/07/2001).
    "To use RMI over IIOP over SSL with a Java client, do the following:
    2. Extend the java.rmi.server.RMISocketFactory class to handle SSL socket
    connections. Be sure to specify the port on which WebLogic Server listens for
    SSL connections. For an example of a class that extends the
    java.rmi.server.RMISocketFactory class, see Listing 4-22.
    3. Run the ejbc compiler with the -d option.
    4. Add your extension of the java.rmi.server.RMISocketFactory class to the
    CLASSPATH of the Java client.
    5. Use the following command options when starting the Java client:
    -xbootclasspath/a:%CLASSPATH%
    -Dorg.omg.CORBA.ORBSocketFactoryClass=implementation of java.rmi.server.RMISocketFactory
    -Dssl.certs=directory location of digital certificate for Java client
    -Dssl.key=directory location of private key for Java client"
    At step 3. I found into documentation that -d is linked to a directory name.
    When I run ejbc with this option -d I have the message:
    "ERROR: You must specify an output directory or jar with the -d option to weblogic.ejbc."
    % So what option can I use to run ejbc for secure usage?
    At step 5. Whatever I write for -Dorg.omg.CORBA.ORBSocketFactoryClass,
    this pointed class is not instanciated.
    Then I can not create a socket with my client.
    The folowing exception is raised:
    javax.naming.CommunicationException [Root exception is java.net.ConnectException:
    No server found at T3S://localhost:7002]
    So, my questions are:
    % Why -Dorg.omg.CORBA.ORBSocketFactoryClass must be known by the client and not
    the server?
    My java client part, managing connection is:
    -------------------BEGIN OF CONNECTION MANAGER-------------------
    Properties env = new Properties ();
    // Shouldn't have to do this, but for now you must
    if ( factory.equals ("weblogic.jndi.WLInitialContextFactory") ) {
    env.put ("java.naming.provider.url", "t3s://localhost:7002");
    } else {
    env.put ("java.naming.provider.url", "rmi://localhost:7002");
    InitialContext context = new InitialContext (env);
    BankSessionServerHome bssh = (BankServerHome) context.lookup("BankServerHome");
    BankServer = bssh.create();
    -------------------END OF CONNECTION MANAGER-------------------
    % What is the code for the java client allowing connection with the ejb?
    % And better, can I have a sample example for rmi-iiop over ssl?
    (...wlserver6.1\samples\examples\iiop\ejb\stateless\rmiclient\client.java do not
    speak ssl!)
    Any help will be appreciate from you...
    Best Regards.
    Oliver

    "oliver" <[email protected]> writes:
    First off 1.4 isn't supported as yet. That is probably part of the problem.
    You also must use a corba URL from the client in order for this to work for instance:
    If you are using WLInitialContextFactory:
    corbaloc:iiop:localhost:7001/NameService
    If you are using CNCtxFactory:
    iiop://localhost:7001
    Using rmi: is the wrong thing to do - that will use jrmp or t3.
    However, I suggest that you raise a call with support since there is
    some other trickiness with getting SSL working. We hope to have this
    much improved in SP2.
    andy
    Hello,
    I have written an appication like this:
    - An EJB server running on Weblogic server 6.1
    (named: BankServerHome)
    -A java client calling the BankServer.
    Platform: windows 2000 - jdk1.4
    Now I want to secure the communication with SSL protocol.
    I have done this:
    -generate a key peer with weblogic service named certificate.
    -send the CSR to a CA and place the answer into the weblogic
    server certificate directory.
    -update path for ServerCertificateChainFileName,
    ServerCertificateFileName, ServerKeyFileName into config.xml.
    -launch weblogicServer
         -> server certificate is recognized
         -> listening port 7001 and 7002.
    (-stop weblogicServer!)
    At now, all is all right, errors come hereafter:
    Then I follow the guideline "Programming weblogic Security" (version of 30/07/2001).
    "To use RMI over IIOP over SSL with a Java client, do the following:
    2. Extend the java.rmi.server.RMISocketFactory class to handle SSL socket
    connections. Be sure to specify the port on which WebLogic Server listens for
    SSL connections. For an example of a class that extends the
    java.rmi.server.RMISocketFactory class, see Listing 4-22.
    3. Run the ejbc compiler with the -d option.
    4. Add your extension of the java.rmi.server.RMISocketFactory class to the
    CLASSPATH of the Java client.
    5. Use the following command options when starting the Java client:
    -xbootclasspath/a:%CLASSPATH%
    -Dorg.omg.CORBA.ORBSocketFactoryClass=implementation of java.rmi.server.RMISocketFactory
    -Dssl.certs=directory location of digital certificate for Java client
    -Dssl.key=directory location of private key for Java client"
    At step 3. I found into documentation that -d is linked to a directory name.
    When I run ejbc with this option -d I have the message:
    "ERROR: You must specify an output directory or jar with the -d option to weblogic.ejbc."
    % So what option can I use to run ejbc for secure usage?
    At step 5. Whatever I write for -Dorg.omg.CORBA.ORBSocketFactoryClass,
    this pointed class is not instanciated.
    Then I can not create a socket with my client.
    The folowing exception is raised:
    javax.naming.CommunicationException [Root exception is java.net.ConnectException:
    No server found at T3S://localhost:7002]
    So, my questions are:
    % Why -Dorg.omg.CORBA.ORBSocketFactoryClass must be known by the client and not
    the server?
    My java client part, managing connection is:
    -------------------BEGIN OF CONNECTION MANAGER-------------------
    Properties env = new Properties ();
    // Shouldn't have to do this, but for now you must
    if ( factory.equals ("weblogic.jndi.WLInitialContextFactory") ) {
    env.put ("java.naming.provider.url", "t3s://localhost:7002");
    } else {
    env.put ("java.naming.provider.url", "rmi://localhost:7002");
    InitialContext context = new InitialContext (env);
    BankSessionServerHome bssh = (BankServerHome) context.lookup("BankServerHome");
    BankServer = bssh.create();
    -------------------END OF CONNECTION MANAGER-------------------
    % What is the code for the java client allowing connection with the ejb?
    % And better, can I have a sample example for rmi-iiop over ssl?
    (...wlserver6.1\samples\examples\iiop\ejb\stateless\rmiclient\client.java do not
    speak ssl!)
    Any help will be appreciate from you...
    Best Regards.
    Oliver

  • Simple RMI/IIOP app : "no security manager: RMI class loader disabled"

    Hello colleagues!
    I do not understand the problem at all, and asking for your kind help.
    This is my first code for RMI/IIOP. We are using JBoss as application server.
    What I've done :
    1) created test.Command interface , extending Remote
    2) created test.CommandImpl , implementing above mentioned interface and java.io.Serializable, and extending javax.rmi.PortableRemoteObject.
    BTW, Serializable is not implemented in some tutorials, but absence of Serializable causes NotSerializableException when trying to rebind (next step).
    3) in server code, created initial context and called
    context.rebind("test/Command",new CommandImpl());
    4) Ran rmic -iiop test.CommandImpl . A result was two new cass files, CommandImplTie.class and CommandStub.class , both are also in package "test".
    5) Created remote client and put CommandStub.class to client
    classpath (under package "test", too).
    6) In client code, initialized the context and called
    context.lookup("test/Command").
    On this line (lookup), the following exception is being raised :
    javax.naming.CommunicationException. Root exception is java.lang.ClassNotFoundException: test.CommandImpl (no security manager: RMI class loader disabled)
         at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:368)
         at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:161)
         at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:631)
         at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:257)
         at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:200)
         at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1513)
         at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
         at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
         at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:30)
         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:514)
         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:471)
         at javax.naming.InitialContext.lookup(InitialContext.java:347)
    Is _Stub class all that client needs from server classes, to obtain
    the reference ? I tried to put _Tie also to client, but with the same result.
    All Jndi paths to JBoss server are correct, as I've used them successfully in other applications.
    Many thanks in advance,
    Daniel

    Next few words to the topic.
    I made tests with canonical RMI/IIOP tutorial from Sun.
    When I use Sun's ORB (orbd.exe) , everything work fine. I started
    orbd on the same PC as JBoss, and client and server are running
    remotely.
    But with JBoss ORB, I have the same exception as described above.
    Server starts and registers in JNDI successfully, but client can not
    obtain a remote reference. Exception is being thrown on
    context.lookup().
    So the difference is definitely in security managers for two ORBs.
    I also tried to create new RMISecurityMananger and set it, but with
    no effect.
    Any ideas ?
    TIA,
    Daniel.

  • RMI-IIOP specification

    I look out for an exact specification of the RMI-IIOP,similarly to the
    specification of the RMI (http://java.sun.com/products/jdk/rmi/).
    My special interest concerns the 'Parameter Transmission'. Probably there
    are no hardly differences between RMI and RMI-IIOP, but I would like to know
    it exactly.
    Thanks in advance,
    Frank

    I'm not sure I understand what it is that you are looking for. The IIOP
    specification is defined by OMG. How Java types map to IDL types is defined by
    the first spec on this site. How IDL valuetypes map to IIOP is defined on the
    second.
    I do not believe that there is a separate specification for RMI/IIOP since it
    really depends on these other OMG specifications. There is a separate
    specification for EJB-CORBA interoperability at:
    http://java.sun.com/products/ejb/docs.html
    Hope this helps,
    Robert
    "Frank Thomas Aßmann" wrote:
    Hi Robert!
    Thank you, but I knew that site before. It only contains the two
    specifications of the Object Management Group, on which RMI over IIOP is
    based on. I search for an exact specification of the RMI-IIOP itself.
    Thanks,
    Frank
    "Robert Patrick" wrote
    http://java.sun.com/products/rmi-iiop/
    "Frank Thomas Aßmann" wrote:
    I look out for an exact specification of the RMI-IIOP,similarly to the
    specification of the RMI (http://java.sun.com/products/jdk/rmi/).
    My special interest concerns the 'Parameter Transmission'. Probably
    there
    are no hardly differences between RMI and RMI-IIOP, but I would like toknow
    it exactly.

  • RMI - IIOP Warnings from JBoss

    Hi all,
    I deploy my EJB's under JBoss, and I get such message for every function in every home interface:
    Bean : ewpsAddressHome
    Method : public abstract Address create(ValueObject) throws CreateException, EJBException, RemoteException
    Section: 9.2.8
    Warning: The method return values in the home interface must be of valid types for RMI/IIOP.
    Got any ideas? :-))
    thanx,
    Nick

    Hi all,
    I deploy my EJB's under JBoss, and I get such message
    for every function in every home interface:
    Bean : ewpsAddressHome
    Method : public abstract Address create(ValueObject)
    throws CreateException, EJBException, RemoteException
    Section: 9.2.8
    Warning: The method return values in the home
    interface must be of valid types for RMI/IIOP.
    Got any ideas? :-))
    thanx,
    Nickdo you solve the problem? because i encounter the same one, but have no idea the reason why.
    hope someone can give me suggestions,
    i appreciate it.
    thank you very much.

  • RMI-IIOP Example for Java SE 6

    Hi.
    Can someone provide me an example (link or code) of how to write an RMI-IIOP remote object, bind it to jndi (glassfish) and then call it from within the glassfish application server (I'm calling from an EJB).
    The guide available at http://java.sun.com/javase/6/docs/technotes/guides/rmi-iiop/tutorial.html is unfortunately not helpful because it the code there does not work when binding the remote object in glassfish JNDI (using empty InitialContext constructor) as opposed to the orbd daemon that is described in the guide.
    Am I not allowed to bind RMI-IIOP objects in glassfish application server JNDI, i.e. do I have to use orbd?
    Do you have to generate stubs for the remote objects in Java SE6? The tutorial says to do it but the exception I get on glassfish application server is not from the _<interface-name>Stub.java but rather from <interface-name>_DynamicStub.java.
    Any help is greatly appreciated!

    Are you trying to create an RMI-IIOP server inside an
    Application Server (Glassfish)?I'm not really sure about how it all works but I don't think so. I am exporting my Remote objects (using PortableRemoteObject) from a standalone Java SE client app. Relating this to normal RMI I had assumed that this automatically started an RMI-IIOP server on an anonomous port, although I now see that the javadoc says that the export method only "Makes a server object ready to receive remote calls.", whatever that means. So if calling the export method doesn't start an RMI-IIOP server then I'm guessing I would have to start one, and then yes, if possible, I would like to do it in glassfish and avoid starting up more applications.
    I am guessing I am missing something fundamental here..
    The tutorial uses the JNDI Registry (tnameserv). (and
    it works fine)Is that what is automatically started when glassfish application server is started?
    Have you looked into using a Portable Object Adapter?No, I have not. I want to keep it as simple and close to regular RMI though, so if possible I would like to avoid POA.

  • Gods:How can i implement callback in RMI-IIOP?

    Gods:
    In RMI-IIOP ,it is a Server-Client pattern.
    I wanna implement a Client1-Server-Client2 pattern .
    What can I do ?
    Can u give me code examples? thanks .

    Previous answer is incorrect & indeed quiteincoherent.
    How very polite.
    What ejp neglects to understand is that the client is
    not Java and cannot create a Java object.As the OP said nothing about non-Java clients, and neither did anybody else until now, I didn't 'neglect to understand' anything, I merely didn't address the issue. You introduced an assumption about 'a non-rmi client (hence the need to use iiop)', which is incoherent, and you're now conflating 'non-RMI' with 'non-Java', which is also incoherent. I don't accept that saying so is impolite.
    On the topic, all that any CORBA client has to do to provide a callback is to construct a CORBA server, in whatever way is appropriate for the environment, and pass it as a parameter. The RMI-IIOP restriction that the IDL interfaces must first be defined in Java still applies of course.
    EJP

  • Rmi-iiop client for EJBs

    [att1.html]

    I've been fighting the same issues over the past few days. The answer you gave still left me
    wondering which tool to use. Should it be rmi -iiop or ejbc -iiop? I get the idl files on
    WLS 5.1 generated but then I can't get the idlj to execute properly on the generated
    HelloHome.idl and Hello.idl.
    Wayne
    Andy Piper wrote:
    Abhishek <[email protected]> writes:
    But How do I write Rmi - iiop clients for EJBs.
    when I try to generate the IDL for my EJB by running the weblogic.rmic utility I get an
    error that none of my classes ( Remote, Home and Impl ) implement the remote
    interface. Which is true as EJBs do not directly implement the remote interface.You may be able to get this to work with WLS6.0SP1 and the
    -idlMethodSignatures flag. Take a look at the methods target in
    examples/rmi_iiop/ejb/generic_idl or at
    examples/rmi_iiop/ejb/simplified_idl. This all works fine in
    Silversword.
    andy

  • RE: Java-based Client for Forte/IIOP

    We have deployed an application using JDK 1.1.6,
    Swing 1.0.3, Visibroker 3.2, and Forte 3.0.G.2.
    We are also using Forte's Java Interoperability
    Service.
    We have a closely-held client base (i.e. not a
    million random yahoos off the internet), so we can
    secure a Java port between client and server and
    download a fairly significant client. The Java
    client is deployed with Sun's JRE (to control the
    environment) with the following configuration:
    2.6 MB JRE
    765 KB Forte.zip
    2.0 MB swingall.jar
    1.6 MB vbjtools.jar, vbjorb.jar
    100 KB application classes
    1) The Swing controls don't interoperate well
    with the AWT and Symantec widgets, especially in
    an internal frame. They paint slowly on top of
    each other, move jerkily, and paint before moving
    to the programmed coordinates so it looks silly.
    100% Swing controls play well with other Swing
    controls and are reasonably fast.
    2) We used Symantec Cafe 2.5a to paint the
    screens, and had some problems with the
    setLayout(null) on things like the Swing tab
    folder and split panel. Commenting out the line
    fixed it, but I'm hoping Cafe 3.0 will fix it (I
    have a person installing it but haven't gotten a
    report...)
    3) The initial search time to turn an IOR file
    into a reference is an annoying 10 seconds, and
    the first method call takes about 7 seconds, but
    after that is less than a tenth of a second.
    Haven't done any digging to find out why yet.
    4) If we were deploying this as an applet, we
    would probably use the IDL IIOP export--when using
    the Java Interoperability service, any method call
    seems to load the whole 765K across the
    line...class by class. Ugly. IDL just gets what
    it needs and is smaller.
    5) Also, if deploying as an applet, we wouldn't
    have to download the JRE or visibroker jar files,
    and would only download the swing and Forte IDL
    generated classes as needed, so it would be a much
    smaller footprint than the 7MB above. (Note:
    However, we would be at the mercy of the browser
    being used by client.) Different strokes for
    different folks...
    -DFR
    From: [email protected]
    Date: Tue, 01 Dec 1998 15:15:18 -0800
    Subject: RE: Java-based Client for Forte/IIOP
    Sean,
    My worry is that Swing, while eloquently designed,
    represents an attempt to
    write a totally new display system which, at least
    in the case of my
    project, will run on top of Windows. I really like
    the Java (or a Java-like
    i.e. J++) language, but I feel safer using the
    native MS widgets. It does
    not seem that anyone on this forum has used Swing
    extensively and can
    testify to its stability and performance.
    Regards,
    David
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    We have deployed an application using JDK 1.1.6,
    Swing 1.0.3, Visibroker 3.2, and Forte 3.0.G.2.
    We are also using Forte's Java Interoperability
    Service.
    We have a closely-held client base (i.e. not a
    million random yahoos off the internet), so we can
    secure a Java port between client and server and
    download a fairly significant client. The Java
    client is deployed with Sun's JRE (to control the
    environment) with the following configuration:
    2.6 MB JRE
    765 KB Forte.zip
    2.0 MB swingall.jar
    1.6 MB vbjtools.jar, vbjorb.jar
    100 KB application classes
    1) The Swing controls don't interoperate well
    with the AWT and Symantec widgets, especially in
    an internal frame. They paint slowly on top of
    each other, move jerkily, and paint before moving
    to the programmed coordinates so it looks silly.
    100% Swing controls play well with other Swing
    controls and are reasonably fast.
    2) We used Symantec Cafe 2.5a to paint the
    screens, and had some problems with the
    setLayout(null) on things like the Swing tab
    folder and split panel. Commenting out the line
    fixed it, but I'm hoping Cafe 3.0 will fix it (I
    have a person installing it but haven't gotten a
    report...)
    3) The initial search time to turn an IOR file
    into a reference is an annoying 10 seconds, and
    the first method call takes about 7 seconds, but
    after that is less than a tenth of a second.
    Haven't done any digging to find out why yet.
    4) If we were deploying this as an applet, we
    would probably use the IDL IIOP export--when using
    the Java Interoperability service, any method call
    seems to load the whole 765K across the
    line...class by class. Ugly. IDL just gets what
    it needs and is smaller.
    5) Also, if deploying as an applet, we wouldn't
    have to download the JRE or visibroker jar files,
    and would only download the swing and Forte IDL
    generated classes as needed, so it would be a much
    smaller footprint than the 7MB above. (Note:
    However, we would be at the mercy of the browser
    being used by client.) Different strokes for
    different folks...
    -DFR
    From: [email protected]
    Date: Tue, 01 Dec 1998 15:15:18 -0800
    Subject: RE: Java-based Client for Forte/IIOP
    Sean,
    My worry is that Swing, while eloquently designed,
    represents an attempt to
    write a totally new display system which, at least
    in the case of my
    project, will run on top of Windows. I really like
    the Java (or a Java-like
    i.e. J++) language, but I feel safer using the
    native MS widgets. It does
    not seem that anyone on this forum has used Swing
    extensively and can
    testify to its stability and performance.
    Regards,
    David
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

Maybe you are looking for

  • S300. Win 8.1 LAN dial

    Drivers were updated from this site after win 8.1 setup. 1. Start button turns totally black on mouse moves to it (just after driver installation). 2. Switching VLC Player to High performance mode in the CCC causes its crash on every playback, howeve

  • Device does not appear

    Hi there. I've got a Kobo eReader and I can't seem to make it appear when I open digital editions. I've spent several hours trying. What am I doing wrong?

  • Turkish Character Encoding on Tomcat 5.0

    When I enter some Turkish characters (e.g. ������������) in an Input Field and SUBMIT the form, I get rubbish characters. (the field is not related with DB, just simple JAva Bean field). I use the following lines on top of my JSP page: <%@ page langu

  • HT2731 Trying to download coins in slotomania and it won't let me

    CAn not download additional coins in slotomania.  Tells me to contact iTunes support.

  • Hi all can anyone send docs for Report Designer bi7.0

    hi all, Can anyone send me the documents for report designer bi 7.0. regds hari