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




