Skip to main content

Migrating an applet from VBJ 3.4 to VBJ 6.5

  • February 16, 2013
  • 0 replies
  • 0 views

Problem:

  • Product Name: VisiBroker Java
  • Product Version: 6.5 and above
  • Product Component: Applet, RMI-IIOP
  • Platform/OS Version: All

1. When migrating an Applet from VBJ 3.4 to VBJ 6.5 that receives a string array, the Applet fails with the following error:

org.omg.CORBA.MARSHAL: Error unmarshaling value [Invalid value tag (6)] vmcid: 0x0 minor code: 0 completed: No

2. The Applet fails with the following errors when using complex nested object:

org.omg.CORBA.MARSHAL: Error unmarshaling value [null] vmcid: 0x0 minor code: 0 completed: No

Resolution:

Solution for the 1st problem:

Instead of returning a simple string array, use a Java Collection class such as java.util.ArrayList, HashTable, etc.
 
For example:

 public java.util.ArrayList returnStringArray(String hello)
{
   ArrayList aL = new ArrayList();
   aL.add(new String("AAA"));
   aL.add(new String("BBB"));
   return aL;
}

Solution for the 2nd problem:

The problem can be resolved by adding the following code before initializing the ORB:

// ADDED CODE
java.util.Properties sys_props = System.getProperties();
sys_props.setProperty ("javax.rmi.CORBA.UtilClass","com.inprise.vbroker.rmi.CORBA.UtilImpl");
System.setProperties(sys_props);
// ADDED CODE
System.out.println("initializing orb ...");
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init( args, props );
......................


This is to specify the VisiBroker RMI Util class to be used inside the System Properties.

 


#applet
#Security
#RMI-IIOP
#marshal
#Java
#VisiBroker