Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Error returning sequence of structures with Java CORBA

Status
Not open for further replies.

Pacifica

Technical User
Nov 23, 2002
13
0
0
DE
HELP!!!!

I have the following idl :

module someModule {


typedef sequence<octet> Data;


struct SomeStructure {
Data file;
string info;
};


typedef sequence<SomeStructure> results;


interface someObject {
get(in string infotoget, out results results_out, out unsigned long
numberOfItems);
};



};


get the error message :

org.omg.CORBA.UNKNOWN: vmcid: SUN minor code: 202 completed: Maybe
Test2 Client Error:
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:308)
at java.lang.Class.newInstance(Class.java:261)
at com.sun.corba.se.internal.iiop.messages.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:90)
at com.sun.corba.se.internal.iiop.ClientResponseImpl.getSystemException(ClientResponseImpl.java:105)
at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:314)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
at someModule._someObjectStub.get(_someObjectStub.java:20)
at Test2Client.main(Test2Client.java:54)


Server code :
-------------

import org.omg.CORBA.IntHolder;

import someModule.SomeStructure;

import someModule._someObjectImplBase;

public class TestServant extends _someObjectImplBase{

public void get(String toget, someModule.resultsHolder results_out, org.omg.CORBA.IntHolder numberOfItems)
{
System.out.println("inside get : " + toget);
someModule.SomeStructure[] srs_array = new someModule.SomeStructure[1];
srs_array[0].info = "EMPTY";

// create array for octet sequence
byte[] data_array = new byte[1];
data_array[0] = 0;
srs_array[0].file = data_array;
results_out = new someModule.resultsHolder(srs_array);

numberOfItems = new IntHolder(0);

}


}


client :

import org.omg.CORBA.ORB;
import org.omg.CosNaming.NameComponent;
import org.omg.CosNaming.NamingContext;
import org.omg.CosNaming.NamingContextHelper;

import someModule.someObjectHelper;
import someModule.someObjectOperations;

public class Test2Client {

public static void main(String[] args) {
try {
System.out.println("in Test2Client");

// create and initialize the ORB
ORB orb = ORB.init(args, null);

System.out.println("after ORB inited");

// get the root naming context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");

System.out.println("after Name Service resolved");

NamingContext ncRef = NamingContextHelper.narrow(objRef);
// The below name is the name used on the server
// when it registers with the Naming Service
NameComponent nc = new NameComponent("SearchServer", " ");
// Resolve the object reference in naming
NameComponent path[] = {nc};

// Here create an object to call operations defined in idl
someObjectOperations someObject =
someObjectHelper.narrow(ncRef.resolve(path));

String get_str = "Test get string";
someModule.resultsHolder srh = new someModule.resultsHolder();
org.omg.CORBA.IntHolder ih = new org.omg.CORBA.IntHolder();
System.out.println("before get called");
someObject.get(get_str, srh, ih);
System.out.println("after get called");

} catch(Exception e) {
System.out.println("Test2 Client Error: " + e.getMessage());
e.printStackTrace();
}



}
}


 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top