Discussions

News: OpenSymphony Workflow - 1.0 beta 2 Released

  1. OSWorkflow is a very flexible Java-based workflow system that can be plugged in to almost any need or existing application. Uses can range from document management to order processing to project management. Includes support for many different interfaces (SOAP, EJB, Java Class) as well as persistence (EJB, JDBC, XML, Ofbiz).

    OSWorkflow takes advantage of many existing Java opensource projects, including:

    -BeanShell: for workflow scripting
    -OpenForBusiness: entity engine persistence supported
    -GLUE: for a SOAP interface
    -Quartz: for job scheduling

    OSWorkflow can work in any J2EE container, including servlet containers (of course, EJB support does not work here). OSWorkflow was designed to be as flexible as possible to fit the needs of many unique requirements.

    OpenSymphony:
    http://www.opensymphony.com.

    OSWorkflow:
    http://www.opensymphony.com/osworkflow .

    Download:
    http://freshmeat.net/redir/osworkflow/30151/url_tgz/osworkflow_1-0-beta2.zip?download.

    Threaded Messages (40)

  2. Uh, is this related in any way to the workflow system that the open for business people are developing in one of their subprojects? What are the main differences to their effort?
  3. Just from looking at the websites it seems that OpenSymphony is much further ahead that the Open for business project, both in terms of features and documentation.
  4. I don't know much of it, but I sometimes take a look at their mailing list, and I think that ofb is nearing release: the workflow project seemed to me pretty interesting, because it is standards based, i.e. it implements features and uses a workflow definition language in a standard format (the one that's specified in XML by wfmc, i think the name is XPDL). Actually, I think the focus for them is having a workflow component in the general ofb architecture (which is more of a framework than a system for building e-commerce sites as the name could suggest). Maybe the main difference is the fact osworkflow is a general purpose workflow solution for j2ee architectures? I was just wondering if they share part of the code base or not.
  5. Both OpenForBusiness and OpenSymphony are very far along with development, and both are great projects. OpenSymphony and Ofbiz don't do any code sharing. However, OpenSymphony components such as OSCore, OSUser, and OSWorkflow all have support for the Ofbiz entity engine as an alternative to persisting data instead of EJB entity beans.

    As for the differences to OSWorkflow and Ofbiz's workflow engine, you are right on the money. Fundamentally, they are very different in their goals and implementation. As I said, both projects are very far along with development and are stable enough for production use.

    Anyone looking for Java-based workflow should do themselves a favor and check out both projects. In fact, even if you aren't working with workflow, check out the projects anyway, there's a lot of great products!
  6. "Anyone looking for Java-based workflow should do themselves a favor and check out both projects. In fact, even if you aren't working with workflow, check out the projects anyway, there's a lot of great products! "


    There are many projects that really are workflow type projects but end up getting implemented as Client/Server applications. Because the 'developers' don't know any better (90%) or Biztalk/Exchange, Lotus Notes/Workflow, etc. where way to expensive.

    I can't wait to explore this[these] tool(s) further! And maybe get involved!

    Mark
  7. Davide Baroncelli wrote:
    >> the workflow project seemed to me pretty interesting,
    >> because it is standards based, i.e. it implements
    >> features and uses a workflow definition language
    >> in a standard format (the one that's specified
    >> in XML by wfmc, i think the name is XPDL).

    XPDL is not standard yet, it's in early draft.
    Support for XPDL or BPML in itself does not make a product great. The benefit of standard comes in play only when this standard is widely adopted in the industry (e.g. J2EE, EJB). So far I can't say that neither about WfMC nor about BPMI. Both XPDL and BPML are not yet released as standards. Furthermore as all mainstream technologies they have many evident drawbacks(not the subject of this thread). IMO that's one of the reasons why WPDL hasn't been widely adopted.
    BTW: To be honest Ofbiz doesn't support XPDL completely.
    Anyway WPDL/XPDL and BPML are significant steps towards WfM and BPM recognition, but NOT the reference models.

    Hi Mark,
    you wrote:
    >> I can't wait to explore this[these]
    >> tool(s) further! And maybe get involved!
    I'm working on project of full-blown BPMS. If you are really interested in collaboration, email me to to@basilt at javait dot net.

    To Patrick:
    Good work..indeed!

    Regards, Basil
  8. Sorry, but GLUE is not open source. Here is part of the license. I wonder if OpenSymphony has not already violated it?

    "GLUE Standard is free for most commercial uses, except for bundling as part of an IDE or software infrastructure platform, or embedding into a device which is not a standard PC or server."
  9. You know, I read that license too and I thought I was good to go, but now I'm not so sure. Thanks for raising that point, I've contacted TME and will sort this issue out right away.

    As for GLUE not being "open source", it actually is open source (as the source is freely available), but the license isn't GNU or Apache or anything like that.
  10. It would be better to plug to Axis from Apache or the abstraction layer provided by IBM WSIF (so you can plug to many SOAP servers).
    Have you taken a look at the WSFL document from IBM ? This is a document part of their web service toolkit and describes a workflow approach, very interesting and of a high quality.
  11. Note this paragraph from the IBM WSIF license agreement:

    IBM grants you a non-exclusive, non-transferable license to download the Software and use it only for your personal, non-commercial and lawful end use. Implied licenses are negated.
  12. There's a big difference between "open source" and "the source is available". Just because someone publishes the source, that doesn't mean that you can do anything you want with it. There is intellectual property in the source code, and it's usually protected by copyright and sometimes by patents. (The same rules apply to specifications, too.) You should always make sure you obtain a license to any intellectual property before you use it.

    Open source is a licensing practice. There are lots of different open source licenses, but you can distill them down into two basic types. Some are very free (BSD, Apache, Artistic), essentially letting you do anything you like with the code and imposing no real obligations on you other than acknowledgement of the source (i.e., you may use it in a commercial product). Others are viral (GPL, LGPL), which let you do anything with the code, but you must contribute all derivative works back to the open source community, and all code containing/derived from the open source code must also be open source (i.e., you may not use it in a commercial product).

    Compare open source to Microsoft's "shared source". Microsoft will allow you to look at their source code so that you can do a better job building drivers and applications that work in the Windows platform. But you are not permitted to create derivative works from the source code.
  13. Sure, open source is really kewl and all, yet sometimes open source software just doesn't work well enough to spend time on it. Apache SOAP is a good example of this; Axis is better but IMHO not quite there yet. GLUE is what I expect a Java SOAP solution to be: nearly transparent, and follows the principles of least surprise.

    It's all well and good to jump on a high horse waving about an open source flag when open source matches what commercial offerings have... but this isn't one of those cases. Get off.
  14. I don't think the author of the message was implying that open source is better or what have you, rather just trying to bring it to everyones attention that you have to understand the license to libraries you rely on. The main point is that "open source" and "viewable source" are potentially two very different things. No reason to get nasty about it.
  15. OK, update on the GLUE issue:

    I just spoke with some folks at TheMindElectric and I'm told that GLUE does indeed have to go. That's unfortunate, but totally understandable. So I'll be pulling GLUE from OSWorkflow and replacing it with Apache Axis along with hooks to GLUE if you wish to use it. I believe that GLUE is a FAR superior product and wish to continue to support it in OSWorkflow in any way that I can.

    Beta 3 will be released tomorrow.
  16. GLUE is not open source software[ Go to top ]

    "I just spoke with some folks at TheMindElectric and I'm told that GLUE does indeed have to go"

    That is too bad. The fact that OpenSymphony Workflow is not a commercial product doesn't matter?

    So we can use it - you just can't bundle it? That's fine.
    What's the diff?

    Mark
  17. GLUE is not open source software[ Go to top ]

    Yes, basically GLUE can't be bundled, but it can be supported.
  18. I couldn't get this to work on JBoss2.4.4/Tomcat4.0.1... What version of JBoss/Tomcat or JBoss/Jetty is osworkflow_example.ear supposed to be deployed on?
  19. JBoss 2.4.4 + Tomcat 4.0.1 was what OSWF was tested on, but not nearly as extensively as it was under Orion. I just deployed OSWorkflow on JBoss (had to tweak a few deployment settings that will be added to CVS and beta 3 soon).
  20. OK - I'll try it again on a virgin JBoss installation once you release beta 3.
  21. Great... I've already got the code in CVS and have verified that everything deploys and runs in JBoss 2.4.4. Beta 3 will include these changes as well as step-by-step instructions as how to get the example app running on Orion and JBoss. Support for Pramati app server will also be included in this release.

    Lastly, the GLUE licensing issue will also be resolved.
  22. OK, beta 3 will be online as soon as the GLUE issues are worked out (or I'll switch to Axis). In the meantime, you can grab the latest from CVS, which no includes step-by-step documentation on deploying to Orion, JBoss, or Pramati, as well as tips on getting it to deploy on any other servlet-container.
  23. Out of the box support on WebSphere and WebLogic would be nice too.
  24. WebLogic support will be included in the 1.0 final release. WebSphere won't, but I'll try to get it in soon thereafter.
  25. Just to throw another wrinkle in this, check out http://www.openbusinessengine.org/ for another open source workflow engine which I have been working on.

    I think one of the interesting aspects of workflow is that it can mean so many different things. In addition to traditional workflow which was designed to handle long running business processes which required machine and human intervention, there are also document workflow systems, image workflow, manufacturing workflow and some newer incarnations: application workflow, web control workflow, etc.

    Fun stuff.
  26. I just reviewed the dtd.txt and am wondering whether you implemented the workflow engine according to the WfMC standard. As I didn't see any definition about process, activity, transition, instance, etc in the dtd. These concepts are very important to define a workflow.
  27. tiger ceo,
    No, we didn't follow the WMfC standard in OSWorkflow. All those features you pointed are in fact included in OSWorkflow, but go by slightly different terms I suppose. If you are looking for a total standards compliant workflow engine, I recommend checking out the Ofbiz workflow engine, as it follows several specs very tightly. OSWorkflow takes a different approach by attempting to provide a very simple but robust system for which most workflow requirements can be addressed.

    -Pat
  28. OK, beta 3 is available to download at:

    http://prdownloads.sourceforge.net/opensymphony/osworkflow_1-0-beta-3.zip?download

    Here is the changelog:

    Resolved the GLUE licensing issue (basically, you have to download it on your own, as the docs explain)

    Verified deployment and functionality on Orion, JBoss (2.4 and 3), WebLogic (6.1 and 7), and Pramati 3.0.

    Updated documentation that details how to get the example app running.
  29. Got it working in JBoss2.4.4/Tomcat4.01 -- It was pretty straightforward this time. I'm still having a couple of problems, but I think they might be due to using hypersql instead of Oracle. Good job, Patrick.
  30. Having it run on Websphere out of the box would be very nice. Given that many Lotus customers are looking at / moving towards WebSphere, they will want affordable workflow on this platform. OSWorfklow seems like a good option from what I have seen so far.
  31. Well now that WebLogic support is mostly done, WebSphere has become a high priority. I downloaded one of IBM's Redbooks, so I'll get cracking on it soon. Please subscribe to opensymphony-discuss to keep updated.
  32. Hi Patrick, I've tryed to install OpenSynphony on wlogic6.1. And the installation seemed successful. i got no errors when i started up weblogic6.1 server.

    Here's the related information in weblogic.log:

    ####<2002-6-10 &#19978;&#21320;10&#26102;41&#20998;32&#31186;> <Info> <Management> <dexter-liu> <myserver> <main> <system> <> <141034> <Java system property: java.class.path = .;d:\eplatform4.0_01\lib\classes12.zip;.\lib\weblogic_sp.jar;.\lib\weblogic.jar;;D:\lliu\docs\workflow\opensymphony\opensymphony1_0b3\lib\oscore.jar;;D:\lliu\docs\workflow\opensymphony\opensymphony1_0b3\lib\osuser.jar;;D:\lliu\docs\workflow\opensymphony\opensymphony1_0b3\lib\bsh-1.2b5.jar;;D:\lliu\docs\workflow\opensymphony\opensymphony1_0b3\config\osworkflow.xml;;D:\lliu\docs\workflow\opensymphony\opensymphony1_0b3\config\osuser.xml;;D:\lliu\docs\workflow\opensymphony\opensymphony1_0b3\config\workflows.xml;;D:\lliu\docs\workflow\opensymphony\opensymphony1_0b3\config\test.xml;>

    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;14&#31186;> <Info> <JDBC> <dexter-liu> <myserver> <main> <system> <> <001082> <Creating Data Source named jdbc/DefaultDS for pool osymphony>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;14&#31186;> <Info> <JDBC> <dexter-liu> <myserver> <main> <system> <> <001070> <Checking existence of connection pool osymphony requested by user system>

    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;23&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010008> <EJB Deploying file: osworkflow.jar>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;23&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name Workflow.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;24&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name WorkflowEntry.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;24&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name Step.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;24&#31186;> <Info> <J2EE> <dexter-liu> <myserver> <main> <system> <> <160003> <Deployed : osworkflow>


    To be continued...
  33. ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;25&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010008> <EJB Deploying file: oscore.jar>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;25&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name os.PropertyStore.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;25&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name os.PropertyEntry.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;25&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name os.PropertyString.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;26&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name os.Sequence.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;26&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name os.PropertyDecimal.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;26&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name os.PropertyDate.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;26&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name os.PropertyData.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;26&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name os.PropertyNumber.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;26&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name os.SequenceGenerator.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;26&#31186;> <Info> <J2EE> <dexter-liu> <myserver> <main> <system> <> <160003> <Deployed : oscore>


    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010008> <EJB Deploying file: osuser.jar>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Warning> <EJB> <dexter-liu> <myserver> <main> <system> <> <010001> <EJB Deployment: os.Group cannot be redeployed while the server is running. com.opensymphony.module.user.provider.ejb.entity.GroupCMP is located in the server's classpath.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Warning> <EJB> <dexter-liu> <myserver> <main> <system> <> <010001> <EJB Deployment: os.Group cannot be redeployed while the server is running. com.opensymphony.module.user.provider.ejb.entity.GroupHome is located in the server's classpath.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Warning> <EJB> <dexter-liu> <myserver> <main> <system> <> <010001> <EJB Deployment: os.Group cannot be redeployed while the server is running. com.opensymphony.module.user.provider.ejb.entity.GroupRemote is located in the server's classpath.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Warning> <EJB> <dexter-liu> <myserver> <main> <system> <> <010001> <EJB Deployment: os.Membership cannot be redeployed while the server is running. com.opensymphony.module.user.provider.ejb.entity.MembershipCMP is located in the server's classpath.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Warning> <EJB> <dexter-liu> <myserver> <main> <system> <> <010001> <EJB Deployment: os.Membership cannot be redeployed while the server is running. com.opensymphony.module.user.provider.ejb.entity.MembershipHome is located in the server's classpath.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Warning> <EJB> <dexter-liu> <myserver> <main> <system> <> <010001> <EJB Deployment: os.Membership cannot be redeployed while the server is running. com.opensymphony.module.user.provider.ejb.entity.MembershipRemote is located in the server's classpath.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Warning> <EJB> <dexter-liu> <myserver> <main> <system> <> <010001> <EJB Deployment: os.User cannot be redeployed while the server is running. com.opensymphony.module.user.provider.ejb.entity.UserCMP is located in the server's classpath.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Warning> <EJB> <dexter-liu> <myserver> <main> <system> <> <010001> <EJB Deployment: os.User cannot be redeployed while the server is running. com.opensymphony.module.user.provider.ejb.entity.UserHome is located in the server's classpath.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Warning> <EJB> <dexter-liu> <myserver> <main> <system> <> <010001> <EJB Deployment: os.User cannot be redeployed while the server is running. com.opensymphony.module.user.provider.ejb.entity.UserRemote is located in the server's classpath.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name ejb/osuser/User.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name ejb/osuser/Membership.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Info> <EJB> <dexter-liu> <myserver> <main> <system> <> <010009> <EJB Deployed EJB with JNDI name ejb/osuser/Group.>
    ####<2002-6-10 &#19978;&#21320;10&#26102;42&#20998;27&#31186;> <Info> <J2EE> <dexter-liu> <myserver> <main> <system> <> <160003> <Deployed : osuser>


    To be continued...
  34. After starting up weblogic and following the installation docs, I created the three groups and a user named osymphony on http://localhost:7001/manager/ successfully. Also I did the same thing on with weblogic server console. Then I logged in http://localhost:7001/example/default.jsp as the user osymphony. Everything was ok so far. No errors and no warings. But with i clicked the link New Workflow, I got exceptions.
    Here's the Exceptions from the console:

    <2002-6-10 &#19978;&#21320;10&#26102;42&#20998;51&#31186;> <Notice> <WebLogicServer> <Started WebLogic Admin S
    erver "myserver" for domain "mydomain" running in Development Mode>
    [FATAL] com.opensymphony.workflow.loader.URLWorkflowFactory : Unable to find wor
    kflow test
    java.net.MalformedURLException: no protocol: test
            at java.net.URL.<init>(URL.java:473)
            at java.net.URL.<init>(URL.java:376)
            at java.net.URL.<init>(URL.java:330)
            at com.opensymphony.workflow.loader.URLWorkflowFactory.getWorkflow(URLWo
    rkflowFactory.java:30)
            at com.opensymphony.workflow.config.ConfigLoader.getWorkflow(ConfigLoade
    r.java:30)
            at com.opensymphony.workflow.AbstractWorkflow.getWorkflow(AbstractWorkfl
    ow.java:80)
            at com.opensymphony.workflow.AbstractWorkflow.initialize(AbstractWorkflo
    w.java:410)
            at com.opensymphony.workflow.ejb.WorkflowEJB_1njufz_EOImpl.initialize(Wo
    rkflowEJB_1njufz_EOImpl.java:582)
            at com.opensymphony.workflow.ejb.EJBWorkflow.initialize(EJBWorkflow.java
    :69)
            at jsp_servlet.__newworkflow._jspService(__newworkflow.java:98)
            at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
            at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:265)
            at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:304)
            at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:200)
            at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:2456)
            at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
    pl.java:2039)
            at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
            at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    [ERROR] com.opensymphony.workflow.ejb.EJBWorkflow : java.rmi.RemoteException: EJ
    B Exception: ; nested exception is:
            com.opensymphony.workflow.InternalWorkflowException
    <2002-6-10 &#19978;&#21320;11&#26102;12&#20998;15&#31186;> <Error> <HTTP> <[WebAppServletContext(1297684,web,/
    web)] Servlet failed with Exception
    java.lang.RuntimeException: EJB Exception: ; nested exception is:
            com.opensymphony.workflow.InternalWorkflowException
            at com.opensymphony.workflow.ejb.EJBWorkflow.initialize(EJBWorkflow.java
    :72)
            at jsp_servlet.__newworkflow._jspService(__newworkflow.java:98)
            at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)


    And here are the exceptions from weblogic.log:

    ####<2002-6-10 &#19978;&#21320;11&#26102;12&#20998;14&#31186;> <Info> <EJB> <dexter-liu> <myserver> <ExecuteThread: '11' for queue: 'default'> <osymphony> <17:f13f76ae7f28edb9> <010051> <EJB Exception during invocation from home: com.opensymphony.workflow.ejb.WorkflowEJB_1njufz_HomeImpl@2c20d7 threw exception: com.opensymphony.workflow.InternalWorkflowException>
    com.opensymphony.workflow.InternalWorkflowException
    at com.opensymphony.workflow.AbstractWorkflow.getWorkflow(AbstractWorkflow.java:82)
    at com.opensymphony.workflow.AbstractWorkflow.initialize(AbstractWorkflow.java:410)
    at com.opensymphony.workflow.ejb.WorkflowEJB_1njufz_EOImpl.initialize(WorkflowEJB_1njufz_EOImpl.java:582)
    at com.opensymphony.workflow.ejb.EJBWorkflow.initialize(EJBWorkflow.java:69)
    at jsp_servlet.__newworkflow._jspService(__newworkflow.java:98)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:304)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2456)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2039)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

    Root cause:
    java.lang.RuntimeException: Unknown workflow name
    at com.opensymphony.workflow.config.ConfigLoader.getWorkflow(ConfigLoader.java:32)
    at com.opensymphony.workflow.AbstractWorkflow.getWorkflow(AbstractWorkflow.java:80)
    at com.opensymphony.workflow.AbstractWorkflow.initialize(AbstractWorkflow.java:410)
    at com.opensymphony.workflow.ejb.WorkflowEJB_1njufz_EOImpl.initialize(WorkflowEJB_1njufz_EOImpl.java:582)
    at com.opensymphony.workflow.ejb.EJBWorkflow.initialize(EJBWorkflow.java:69)
    at jsp_servlet.__newworkflow._jspService(__newworkflow.java:98)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:304)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2456)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2039)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    ####<2002-6-10 &#19978;&#21320;11&#26102;12&#20998;15&#31186;> <Error> <HTTP> <dexter-liu> <myserver> <ExecuteThread: '11' for queue: 'default'> <osymphony> <> <101020> <[WebAppServletContext(1297684,web,/web)] Servlet failed with Exception>
    java.lang.RuntimeException: EJB Exception: ; nested exception is:
    com.opensymphony.workflow.InternalWorkflowException
    at com.opensymphony.workflow.ejb.EJBWorkflow.initialize(EJBWorkflow.java:72)
    at jsp_servlet.__newworkflow._jspService(__newworkflow.java:98)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:304)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2456)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2039)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

    Would you like to provide some hits to me to solve the problems, Patrick?

    Thanks in advance.
  35. Try placing "D:\lliu\docs\workflow\opensymphony\opensymphony1_0b3\config" and let us know what happens. It appears you put the XML files in your classpath directly. Actually, for WebLogic (since OSUser isn't integrated in yet), all you need is D:\lliu\docs\workflow\opensymphony\opensymphony1_0b3\config and D:\lliu\docs\workflow\opensymphony\opensymphony1_0b3\config\bsh-1.2b5.jar in your classpath.

    -Pat
  36. Thank you so much for your quick and useful reply, Patrick. Yes, you are right.I corrected the classpath settings and then it worked. I got a workflow entry created and initialized. But when I entered the workflow entry id provided by opensymphony and choosed view operation on http://localhost:7001/example/newworkflow.jsp, I got errors.

    Here they are(from weblogic.log):

    <dexter-liu> <myserver> <ExecuteThread: '14' for queue: 'default'> <osymphony> <> <010051> <EJB Exception during invocation from home: com.opensymphony.workflow.ejb.WorkflowEJB_1njufz_HomeImpl@33940a threw exception: java.lang.NoSuchMethodError>
    java.lang.NoSuchMethodError
    at com.opensymphony.workflow.AbstractWorkflow.setBshVariables(AbstractWorkflow.java:200)
    at com.opensymphony.workflow.AbstractWorkflow.evaluateExpression(AbstractWorkflow.java:209)
    at com.opensymphony.workflow.AbstractWorkflow.getAvailableActions(AbstractWorkflow.java:635)
    at com.opensymphony.workflow.ejb.WorkflowEJB_1njufz_EOImpl.getAvailableActions(WorkflowEJB_1njufz_EOImpl.java:288)
    at com.opensymphony.workflow.ejb.EJBWorkflow.getAvailableActions(EJBWorkflow.java:87)
    at jsp_servlet.__test._jspService(__test.java:114)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:304)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2456)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2039)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    ####<2002-6-10 &#19979;&#21320;02&#26102;37&#20998;21&#31186;> <Error> <HTTP> <dexter-liu> <myserver> <ExecuteThread: '14' for queue: 'default'> <osymphony> <> <101020> <[WebAppServletContext(1981187,web,/web)] Servlet failed with Exception>
    java.lang.RuntimeException: EJB Exception: ; nested exception is:
    java.lang.NoSuchMethodError
    at com.opensymphony.workflow.ejb.EJBWorkflow.getAvailableActions(EJBWorkflow.java:90)
    at jsp_servlet.__test._jspService(__test.java:114)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:304)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2456)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2039)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

    I checked AbstractWorkflow.java:200 and found there was a method Interpreter.set(String key, Object o). Further i checked Interpreter.class in bsh-1.2b5.jar and there did have a method set(String key,Object o). Could you give me some suggestions on solving the problem, Patrick?

    Thanks in advance.
  37. Interesting... I recall that WebLogic includes BeanShell is some of their distributions, so it might be that there is a conflict here?
  38. I recommend reading this page:

    http://www.beanshell.org/weblogic.html
  39. YES! weblogic6.1 is using beanshell too. I set bsh-1.2b5.jar before weblogic.jar in the classpath. And now OpenSymphony's working quite well with the example, Patrick! Thank you so much, man.

    And i am continuing studying OpenSymphony. Here's another question on it. Wether/How does it support transctions? If it utilizes EJB transaction management provided by EJB container, that will be pretty cool, i think.

    BTW, do you have any chatting tools for instant contact, Patrick?My yahoo messenger id is tom5tom5tom5.

    Regards
  40. OSWorkflow is just one component in the OpenSymphony suite.

    As for transactions in OSWorkflow, there are three interfaces that implement Workflow:

    EJBWorkflow (can uses EJB persistence or Ofbiz persistence and uses the EJB container managed transactions)

    OfbizWorkflow (uses Ofbiz persistence and TransactionUtil, which in turns talks the to JTA implementation in your app server)

    BasicWorkflow (can use EJB persistence or Ofbiz persistence and uses no direct transactions. However, since it is using a managed datasource, it could be used within another transaction and work atomically).

    As for contact me and the rest of the OpenSymphony crew, I recommend you check out http://www.opensymphony.com/contact.jsp
  41. Has anybody got OSWorkflow working on JBoss 3.0.0 release with an oracle database ?.