Error creating process w/ CORBA API
"Maciel, Leonardo \(GE Healthcare, non-ge\)" <[email protected]>
| Newsgroups | gmane.comp.java.enhydra.shark |
|---|---|
| Message-ID | <E9F882F4B99B2A428AC50342EDADD7E00488201B@BUDMLVEM03.e2k.ad.ge.com> |
Using the Shark 1.0 CORBA api, running on a windows machine, I was able to instantiate a process with the following piece of code:
ExecutionAdministration execAdmin = workflowServer.getExecutionAdministration();
execAdmin.connect(username, password, "", "");
WfProcessMgr mgr = execAdmin.getProcessMgrByName(procDefName);
WfProcess proc = mgr.create_process(new MyRequester());
After migrating to Shark 1.1 running on a Linux machine, the last line always fails with the following stack trace:
org.omg.CORBA.UNKNOWN: vmcid: SUN minor code: 202 completed: Maybe
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:274)
java.lang.Class.newInstance0(Class.java:308)
java.lang.Class.newInstance(Class.java:261) com.sun.corba.se.internal.iiop.messages.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:90) com.sun.corba.se.internal.iiop.ClientResponseImpl.getSystemException(ClientResponseImpl.java:105) com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:314)
org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457) org.omg.WorkflowModel._WfProcessMgrStub.create_process(_WfProcessMgrStub.java:288) com.ge.med.euro.dfmtracker.domain.TrackerServiceImpl.createProcess(TrackerServiceImpl.java:429)
...
Below is the source code for MyRequester:
import org.omg.CORBA.portable.ObjectImpl;
import org.omg.WfBase.BaseException;
import org.omg.WorkflowModel.*;
import java.util.*;
public class MyRequester extends ObjectImpl implements WfRequester {
private List performers = new ArrayList();
private static String[] __ids = { "IDL:omg.org/WorkflowModel/WfRequester:1.0", "IDL:omg.org/WfBase/BaseBusinessObject:1.0" };
public String[] _ids() { return (String[]) __ids.clone(); }
public int how_many_performer() throws BaseException { return performers.size(); }
public WfProcessIterator get_iterator_performer() throws BaseException { throw new BaseException(); }
public WfProcess[] get_sequence_performer(int max_number) throws BaseException { return (WfProcess[]) performers.toArray(new WfProcess[performers.size()]); }
public boolean is_member_of_performer(WfProcess member) throws BaseException { return performers.contains(member); }
public void receive_event(WfEventAudit arg0) throws BaseException, InvalidPerformer { throw new BaseException(); }
}
Any hints, anyone? Is the MyRequester code correct?
Notes: I'm using the default HSQL database. I already tried disabling cache. I even tried to disable security (NO_SECURITY).
Thanks in advance,
Leonardo