我在调用方法(BAD_PARAM) Null parameter
时收到opt2()
错误。我的另一种方法opt1()
运行正常。以下是他们的定义:
void call1()
{
StringHolder text2 = new StringHolder("bolek");
StringHolder text3 = new StringHolder("a");
S1 s1 = new S1();
s1.a = 77;
s1.b = 'r';
i1.op1(123);
String res = i1.op2("myString", text2, text3, s1);
System.out.println(res);
}
@Override
public short op1(int abc) {
// TODO Auto-generated method stub
System.out.println("OP1 " + abc);
return 0;
}
@Override
public String op2(String text, StringHolder text2, StringHolder text3,
S1 struct1) {
return text+" "+text2+" "+text3+" "+struct1.a+" "+struct1.b;
}
S1
是一个包含int a
和char b
的结构。
我得到以下堆栈跟踪:
2015-05-04 17:34:24 com.sun.corba.se.impl.encoding.CDROutputStream_1_0 writeString
WARNING: "IOP00110201: (BAD_PARAM) Null parameter"
org.omg.CORBA.BAD_PARAM: vmcid: SUN minor code: 201 completed: Maybe
at com.sun.corba.se.impl.logging.ORBUtilSystemException.nullParam(ORBUtilSystemException.java:1127)
at com.sun.corba.se.impl.logging.ORBUtilSystemException.nullParam(ORBUtilSystemException.java:1141)
at com.sun.corba.se.impl.encoding.CDROutputStream_1_0.writeString(CDROutputStream_1_0.java:462)
at com.sun.corba.se.impl.encoding.CDROutputStream_1_0.write_string(CDROutputStream_1_0.java:456)
at com.sun.corba.se.impl.encoding.CDROutputStream.write_string(CDROutputStream.java:151)
at edu.sr.generated.example1.I1POA._invoke(I1POA.java:58)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:637)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:189)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1680)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1538)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:920)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:181)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:692)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:449)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1211)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:471)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:500)
我该如何解决这个问题?