Hi all, I studied how the ODE Management API is deployed as a web service during the startup of ODE in order to deploy the debugging functionality as a web service programatically during the startup of ODE. So I created the WSDL from the service class (BpelManagementFacedImpl) and implement Axis2 wrapper class for the debugger interface. Then I change the org.apache.ode.axis2.ODEServer#init method in order to start the debugging service when ODE starts. As well the relevant schema were added to ode-bpel-schemas module and created the .xsdconfig file in order to generate the bean classes. Then I changed the rakefile in order to add relevant schema to the war distribution.
Then I build ODE and put war distribution inside tomcat and start ODE. Debugger service was created without no exceptions. But when I invoke operations it gives a exception stack as follows. It seems like there is a serializing/deserializing problem. <soapenv:Fault> <soapenv:Code>axis2ns72:Server</soapenv:Code> <soapenv:Reason> java.lang.RuntimeException: Couldn't convert object [Lorg.apache.ode.bpel.bdi.breaks.Breakpoint;@9fb152 into a response element. </soapenv:Reason> <soapenv:Detail> <axis2ns73:RuntimeException> java.lang.RuntimeException: Couldn't convert object [Lorg.apache.ode.bpel.bdi.breaks.Breakpoint;@9fb152 into a response element. at org.apache.ode.il.DynamicService.convertToOM(DynamicService.java:164) at org.apache.ode.il.DynamicService.invoke(DynamicService.java:73) at org.apache.ode.axis2.service.DebuggingWebService$DynamicMessageReceiver.invokeBusinessLogic(DebuggingWebService.java:95) at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) at org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:125) at org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:119) at org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:799) at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:242) at org.apache.ode.axis2.hooks.ODEAxisServlet.doGet(ODEAxisServlet.java:62) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619) </axis2ns73:RuntimeException> </soapenv:Detail> </soapenv:Fault> Please help me on this matter. Cheers, Denis Weerasiri On Tue, Feb 10, 2009 at 4:00 AM, Matthieu Riou <[email protected]>wrote: > On Sun, Feb 8, 2009 at 8:29 AM, Denis Weerasiri <[email protected] > >wrote: > > > Hi, > > > > I'm interested in implementing a interactive debugging tool for WS-BPEL > > developers on Apache ODE which enables to set breakpoints, and > > watch/inspect > > instance variables as GSOC project. > > > Sweet! Really good idea :) > > > > > > These days I'm developing a WS-BPEL status tracking tool which generate > an > > SVG flow diagram based on the BPEL code, and view the instance variable > > values and the activity details of the running instances. I used the ODE > > Management API for that. But it seems that ODE doesn't provide any API > for > > handling breakoints. > > Please let me know whether there is any API or some tool already > developed > > for handling breakpoint functionality in ODE. > > As well I'm clueless of the capacity of this project idea, whether it's > > possible to achieve. > > Or if there is any other interresting ideas for GSOC under Apache ODE > > project please let me know. > > > It is possible as it's a feature that used to exist back in the days when > ODE was still called PXE and was developed by Intalio only. Debugging had > been developed for Netbeans by a third party. > > Since then, even if it's never really been tested, I've been very careful > to > not remove this code and keep it up-to-date with the different refactoring > we've done, thinking we'll probably revive this feature sooner or later. So > even if it's probably buggy, most of the code is still present and should > be > operational. > > So if you check the InstanceManagement interface [1], you'll see > suspend(iid) and resume(iid) methods, which is a start. Those are > implemented by the DebuggerSupport class [2], which is useful to look at > but > is mostly internal API (external tooling shouldn't use it directly). > Instead > those methods should be used through BpelManagementFacadeImpl that > delegates > to DebuggerSupport. You'll find all the usual suspects: > getGlobalBreakpoints, addActivityBreakpoint, removeBreakpoint, ... For the > moment, even though those methods are on BpelManagementFacadeImpl like all > others of the management API, they're not accessible remotely yet. But that > wouldn't too hard to add. > > I think that should be enough information to get you started but don't > hesitate to ask if you have any other additional question or problems. > > Cheers, > Matthieu > > [1] > > http://svn.apache.org/repos/asf/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/InstanceManagement.java > [2] > > http://svn.apache.org/repos/asf/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java > > > > > > > > Best regards, > > Denis Weerasiri. > > >
