ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Boisvert <boisv...@intalio.com>
Subject Re: Is there any way how to get bpmn:id?
Date Thu, 09 Jul 2009 00:12:56 GMT
Did you try rmi://localhost:2099/jcaServer ?

alex

On Wed, Jul 8, 2009 at 4:55 PM, Karel Gardas <karel.gardas@centrum.cz>wrote:

>
> Alex,
>
> I'm not sure which URL to use. I've tried simple
> http://localhost:8080/ode , various rmi://xxxxx but no way. BTW: is this
> JCA connector listening on 0.0.0.0:8009 when ODE is running inside
> tomcat/axis container?
>
> Do you have any idea what url to use to set OdeManagedConnectionFactory?
>
> Thanks,
> Karel
>
> Alex Boisvert wrote:
> > The sequence should be roughly as follows,
> >
> > OdeManagedConnectionFactory mcf = new OdeManagedConnectionFactory();
> > mcf.setURL(url);
> > OdeConnectionFactory cf = (OdeConnectionFactory)
> > mcf.createConnectionFactory();
> > ProcessManagementConnection pmc =  cf.getConnection();
> >
> > alex
> >
> > On Wed, Jul 8, 2009 at 4:56 AM, Karel Gardas <karel.gardas@centrum.cz
> >wrote:
> >
> >> Hi Alex,
> >>
> >> it took me some time to figure out needed changes in buildr
> >> infrastructure, but it's finally compiling and I'm getting into
> >> following issue.
> >>
> >> Alex Boisvert wrote:
> >>> Indeed... BpelManagementFactory is a proprietary class (not in Apache
> >> Ode)
> >>> which hides the lookup of the ProcessManagement API remote interface.
>  I
> >>> didn't realize when I cut & pasted the code, sorry.   The class is tied
> >> to
> >>> other stuff (e.g. loading of configuration, etc.) so I can't share it
> >>> easily.
> >>>
> >>> Take a look at the following classes for facilities to connect to the
> PM
> >> API
> >>> via RMI:
> >>>
> >>> org.apache.ode.bpel.jca.clientapi.ProcessManagementConnection;
> >>> org.apache.ode.ra.OdeConnectionFactory;
> >>> org.apache.ode.ra.OdeManagedConnectionFactory;
> >> both ProcessManagementConnection and OdeConnectionFactory are just
> >> interfaces so I started digging into OdeManagedConnectionFactory with
> >> the following testing code:
> >>
> >>        OdeManagedConnectionFactory fact = new
> >> OdeManagedConnectionFactory();
> >>        try {
> >>            OdeConnectionFactory con_fact =
> >> (OdeConnectionFactory)fact.createConnectionFactory();
> >>            System.err.println(con_fact.getClass().getName());
> >>            javax.resource.cci.Connection con = con_fact.getConnection();
> >>            System.err.println(con.getClass().getName());
> >>        }
> >>        catch (Exception e) {
> >>            e.printStackTrace();
> >>        }
> >>
> >> the intention is "what can I get from it?". The problem is on the line:
> >>
> >>            javax.resource.cci.Connection con = con_fact.getConnection();
> >>
> >> I get following exception:
> >>
> >> Unable to create connection: Protocol error: unexpected remote object
> >> type!; nested exception is:
> >>        java.lang.ClassCastException: sun.rmi.registry.RegistryImpl_Stub
> >> cannot
> >> be cast to org.apache.ode.ra.transports.rmi.OdeRemote
> >>        at
> >>
> >>
> org.apache.ode.ra.OdeManagedConnectionFactory.createManagedConnection(OdeManagedConnectionFactory.java:100)
> >>        at
> >>
> >>
> org.apache.ode.ra.OdeConnectionManager.allocateConnection(OdeConnectionManager.java:34)
> >>        at
> >>
> >>
> org.apache.ode.ra.OdeConnectionFactoryImpl.getConnection(OdeConnectionFactoryImpl.java:46)
> >>        at org.apache.ode.bpel.runtime.ASSIGN.run(ASSIGN.java:95)
> >>        at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
> >>        at
> >>
> >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >>        at java.lang.reflect.Method.invoke(Method.java:597)
> >>        at
> >> org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
> >>        at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
> >>        at
> >>
> >>
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:875)
> >>        at
> >>
> >>
> org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:206)
> >>        at
> >>
> org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:237)
> >>        at
> >>
> >>
> org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:408)
> >>        at
> >>
> >>
> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:439)
> >>        at
> >>
> >>
> org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:441)
> >>        at
> >>
> >>
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:411)
> >>        at
> >>
> >>
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:404)
> >>        at
> >>
> >>
> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:218)
> >>        at
> >>
> >>
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:404)
> >>        at
> >>
> >>
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:400)
> >>        at
> >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> >>        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> >>        at
> >>
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> >>        at
> >>
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> >>        at java.lang.Thread.run(Thread.java:619)
> >> Caused by: java.rmi.RemoteException: Protocol error: unexpected remote
> >> object type!; nested exception is:
> >>        java.lang.ClassCastException: sun.rmi.registry.RegistryImpl_Stub
> >> cannot
> >> be cast to org.apache.ode.ra.transports.rmi.OdeRemote
> >>        at
> >>
> >>
> org.apache.ode.ra.transports.rmi.RMITransport.createPipe(RMITransport.java:45)
> >>        at
> >>
> >>
> org.apache.ode.ra.OdeManagedConnectionFactory.createManagedConnection(OdeManagedConnectionFactory.java:98)
> >>        ... 24 more
> >> Caused by: java.lang.ClassCastException:
> >> sun.rmi.registry.RegistryImpl_Stub cannot be cast to
> >> org.apache.ode.ra.transports.rmi.OdeRemote
> >>        at
> >>
> >>
> org.apache.ode.ra.transports.rmi.RMITransport.createPipe(RMITransport.java:39)
> >>        ... 25 more
> >>
> >>
> >> Do you have any idea what's going wrong here? Also do you think there is
> >> any documentation for this part of ODE? I'm asking since relationship
> >> between OdeConnectionFactory and connection created by it and
> >> ProcessManagementConnection is not yet clear to me.
> >>
> >> Thanks!
> >> Karel
> >>> Good luck,
> >>> alex
> >>>
> >>> On Tue, Jul 7, 2009 at 3:08 PM, Karel Gardas <karel.gardas@centrum.cz
> >>> wrote:
> >>>
> >>>> Hi Alex,
> >>>>
> >>>> thanks a lot for your quick help. Unfortunately I do have quite
> problem
> >>>> to find BpelManagementFactory class. I've tried to find it in
> ode-trunk,
> >>>> in my ode-1.X source tree and also in ode-1.2 but it's nowhere. Could
> >>>> you be so kind and kick me into the right direction?
> >>>>
> >>>> Thanks,
> >>>> Karel
> >>>>
> >>>> Alex Boisvert wrote:
> >>>>> Hi Karel,
> >>>>>
> >>>>> Here's a code fragment that does roughtly what you want:
> >>>>>
> >>>>>         ProcessManagementConnection conn =
> >>>>> BpelManagementFactory.getInstance().createConnection();
> >>>>>         try {
> >>>>>             ActivityExtInfoListDocument s =
> >>>>> conn.getExtensibilityElements(pid, aiid);
> >>>>>             TActivitytExtInfoList l = s.getActivityExtInfoList();
> >>>>>             List<TActivityExtInfo> ll = l.getActivityExtInfoList();
> >>>>>             for (TActivityExtInfo info : ll) {
> >>>>>                 NodeList nl = ((Element)
> >>>>> info.getDomNode()).getElementsByTagNameNS(BPMN_NS, BPMN_ID);
> >>>>>                 for (int i = 0; i < nl.getLength(); i++) {
> >>>>>                     Node n = nl.item(i);
> >>>>>                     result.add(n.getFirstChild().getNodeValue());
> >>>>>                 }
> >>>>>             }
> >>>>>         } catch (Exception e) {
> >>>>>             ...
> >>>>>
> >>>>>         }
> >>>>>
> >>>>> As you can see, you mostly need to use the Process Management API
and
> >> the
> >>>>> BPEL object model.
> >>>>>
> >>>>> alex
> >>>>>
> >>>>> On Tue, Jul 7, 2009 at 6:07 AM, Karel Gardas <
> karel.gardas@centrum.cz
> >>>>> wrote:
> >>>>>
> >>>>>> Hello,
> >>>>>>
> >>>>>> I'm trying to find out but so far unsuccessful hence the question:
> is
> >>>>>> there any way how to get bpmn:id which is assigned to some action
> >>>>>> directly in action's code? i.e. I do have following code:
> >>>>>>
> >>>>>>  <bpel:sequence>
> >>>>>>
> >>>>>>    <bpel:scope bpmn:label="SubProcess" name="SubProcess"
> >>>>>> bpmn:id="_KddAgBq8Ed6g-K1VcIMszw">
> >>>>>> ....
> >>>>>>
> >>>>>> and I would like to get bpmn:id's value, i.e.
> >> "_KddAgBq8Ed6g-K1VcIMszw"
> >>>>>> somehow in SCOPE.java code. I'm currently using ODE from 1.X
branch.
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Karel
> >>>>>>
> >>
> >
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message