2007-08-26

OSWorkflow2.8扩展源代码升级版(Version2.0)

关键字: osworkflow, workflow, opensource

请大家注意:最近有非常多的网友问我,osworkflow如何与现有系统集成,虽然我在文档中写得比较清楚,但是没有例子作参考还是显得比较抽象,于是我写了一个升级版的例子供大家参考和学习!!!

目前的例子是osworkflow2.8_bundle2,在osworkflow2.8_bundle的基础上新增了流程审批意见功能。

注意,在例子升级版中:
在mysql-jdbc.sql里面多一张名为os_doc的表。

另外又新增加了一张名为os_doc_opinion的表。

本例子是官方例子的改良版,增加了绑定现有系统的功能,实现的存储方式是jdbcTemplate。

请务必先在默认方式(jdctTemplate)下面调试成功,再照猫画虎改为jdbc方式或者hibernate方式。

如果要改为hibernate方式,请自行增加名为os_doc和os_doc_opinion的表。

所需JAR
OSWorkflow自身
OSWorkflow自身(%osworkflow解压包%\)
osworkflow-2.8.0.jar
OSWorkflow核心引用包
OSWorkflow核心引用包(%osworkflow解压包%\lib\ core):
 
commons-logging.jar:必要,支持日志。
propertyset-1.4.jar:必要,支持propertyset的aggregate ,cached ,memory ,jdbc ,file ,javabeans ,map ,xml接口实现,并不支持hibernate3。
oscore-2.2.5.jar:必要,提供了一些工具等。
OSWorkflow可选包
OSWorkflow可选包(%osworkflow解压包%\lib\ optional):
 
bsf.jar:支持bsf,可选。
bsh-1.2b7.jar:支持beanshell,可选。
ehcache.jar:支持缓存,可选。
osuser-1.0-dev-2Feb05.jar:支持例子里面的用户和群组管理,在涉及到用户和群组的操作建议加上此包。
Spring2联用所需包
spring2所需的包(%spring解压包%\dist) :
 
spring.jar(version:2.05)
Hibernate3联用所需包
Hibernate3所需的包(%hibernate解压包%\lib) :
 
antlr.jar
cglib.jar
asm.jar
asm-attrs.jars
commons-collections.jar
hibernate3.jar
jta.jar
dom4j.jar
log4j.jar
如何发布?
1.请使用mysql5.0数据库,将database目录下面的mysql-jdbc.sql导入到数据库中,数据源的名称为jdbc/oswf。
2.里面有一个名称为exploded的文件夹,这个文件夹为webapp。请在tomcat或者别的服务器上面加载exploded文件夹。
3.exploded/WEB-INF/lib里面没有一个包,最好将上述所需JAR包全部加到lib中去;另外请大家注意,由于我使用了FCKEditor,版本是2.3版的,所以请大家到http://sourceforge.net/project/showfiles.php?group_id=75348&package_id=129511 下载FCKeditor-2.3.zip解压以后将FCKeditor-2.3.jar加到lib里面去或者直接下载下面链接的FCKeditor-2.3.jar这个附件!!!
4.src文件夹里面的程序不用编译就可以运行,如果编译也没有什么问题。但是将我写的src下面的程序删除是绝对运行不了的。
用户提出的bug
当前登录用户:newplayer,所在的组:writer
用户创建新工作流后,在点击"完成初稿"时,保存审批意见的功能在什么地方实现的?
好像保存文档标题字段有问题,把当前登录用户的用户名保存为了文档标题值了

找到了问题所在:

把test.jsp中的workflowService.doAction(wf, id, 0, action, title, un, content, opinion);
修改为workflowService.doAction(wf, id, 0, action, un, title, content, opinion);
即可
大约在77行的位置

  • osworkflow_bundle2.rar (1 MB)
  • 描述: OSWorkflow2.8中文文档及扩展源代码升版(Version2.0),在osworkflow2.8_bundle.rar的基础上增加了流程审批意见功能。
  • 下载次数: 2023
  • FCKeditor-2.3.jar (17.8 KB)
  • 描述: FCKeditor-2.3版,请加到例子的lib中去。
  • 下载次数: 568
评论
songmiao 2008-06-17
再补充一些吧,方便楼主找到具体代码,我所说的这段代码在JDBCTemplatePropertySetDAOImpl类中,同样的问题还出现在其他一些地方一共十多处,请楼主解决一下吧。是否对程序的运行有影响我还没有试验过。但是这个问题好像不是什么逻辑问题,就是个类型转换问题。我特意用测试类试验了一下报
java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from int to Object 异常。
难道有什么别的说道?! 我就不知道了。如果改的话请说说应该怎么改。做个类型转换将提到的那个type变量转为一个封装类?或者什么别的。请楼主明示。
songmiao 2008-06-17
我在eclipse中部署后有eclipse提示的错误
比如:
case PropertySet.DATA:
Data data = (Data) value;
sql = "UPDATE " + tableName + " SET " + colData + " = ?, " + colItemType + " = ? " + " WHERE " + colGlobalKey + " = ? AND " + colItemKey + " = ?";
return this.getJdbcTemplate().update(sql, new Object[]{data.getBytes(), type, globalKey, key});

其中new Object[]{data.getBytes(), type, globalKey, key});这句中变量type是一个int类型的值不能作为一个Object加入到一个Object数组中吧!
huayuanmeng 2008-05-20
我发现原因了 在整合Spring hibernate3的过程中 如果我加上事务处理的话 <bean id="workflowService" parent="txProxyTemplate">
<property name="target">
<bean
class="com.opensymphony.workflow.service.WorkflowServiceImpl">
<property name="workflowDAO" ref="workflowDAO" />
<property name="configs"
ref="osworkflowConfiguration">
</property>
</bean>
</property>
</bean>

就报上面的错误,
如果去掉的话 就可以了
<bean id="workflowService"
class="com.opensymphony.workflow.service.WorkflowServiceImpl">
<property name="workflowDAO" ref="workflowDAO" />
<property name="configs"
ref="osworkflowConfiguration">
</property>
</bean>

谁知道是什么原因?难道大家都没有遇到过这样的问题吗?
huayuanmeng 2008-05-15
org.springframework.dao.InvalidDataAccessApiUsageException: deleted object would be re-saved by cascade (remove deleted object from associations): [com.opensymphony.workflow.spi.hibernate3.HibernateCurrentStep#43]; nested exception is org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [com.opensymphony.workflow.spi.hibernate3.HibernateCurrentStep#43]

在hibernate 和Spring
的整合中遇到 这样的错误 谁能帮我下 谢谢你们!
huayuanmeng 2008-05-08
在运行 我启动的工作流 的时候报错

javax.servlet.ServletException: SQL Exception in query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? AND a2.STATUS = ? )' at line 1
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.underway2_jsp._jspService(underway2_jsp.java:125)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.opensymphony.filter.EncodingFilter.doFilter(EncodingFilter.java:81)
wangjian5748 2008-05-07
刚刚调试spring+JDBC成功,还没调spring+hibernate
我在tomcat5.5下运行,按照帮主的数据源配置运行osuser找不到数据源,老是报url为null:(Cannot create JDBC driver of class '' for connect URL 'null'),不过我把数据源配置改为按tomcat5.5官方文档提供的方式就正确了,还有newdoc.jsp文件的代码有问题(46行):
错误:oFCKeditor.setBasePath("/components/fckeditor/");
正确:oFCKeditor.setBasePath("components/fckeditor/");
不管怎么样,谢谢帮主!!
kjj 2008-05-05
楼上的,注意,osworkflow hibernate版的数据库表与jdbc版的不同!
PangSir 2008-05-04
下载楼主的例子来运行~~
JDBC 是可以测试通过了~~
可是HIBERNATE3的怎么都通不过~~
起初是提示"workflowService"没有找到所以就要HIBERNATE3的那个配置文件里加了以下几段代码:

<bean id="workflowDAO" class="com.opensymphony.workflow.dao.WorkflowDAOImpl">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="workflowService" parent="txProxyTemplate">
<property name="target">
<bean class="com.opensymphony.workflow.service.WorkflowServiceImpl">
<property name="workflowDAO" ref="workflowDAO"/>
</bean>
</property>
</bean>

虽然是能运行起来了,也能"拟稿"了,但是在运行到"完成拟稿"的这一步就出错了,报了以下错误~~
2008-5-4 9:53:09 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
com.opensymphony.module.propertyset.PropertyException: Unknown column 'GLOBAL_KEY' in 'where clause'
at com.opensymphony.module.propertyset.database.JDBCPropertySet.setImpl(JDBCPropertySet.java:289)
at com.opensymphony.module.propertyset.AbstractPropertySet.set(AbstractPropertySet.java:502)
at com.opensymphony.module.propertyset.AbstractPropertySet.setString(AbstractPropertySet.java:300)
kukujerry 2008-04-09
试了,用不了啊,缺好几个包,怎么回事啊?
sunchang_long 2008-01-04
十分感谢,经常从网上搜寻问题答案,还第一次见到这么系统的说明。也是第一次把感谢写出来,谢谢。
cucuchen520 2007-10-23
回楼上的,这个是可以很容易实现的,在action标签里作如下配置:
<restrict-to>
<conditions>
<condition type="class">
<arg name="class.name">
com.opensymphony.workflow.util.OSUserGroupCondition
</arg>
<arg name="group">dept_manager</arg>
</condition>
</conditions>
</restrict-to>

以上配置说明dept_manager这个群组是可以操作的。
jszhiyang 2007-10-23
请教LZ
在项目中 我需要某个流程可以由两个角色或多个角色可以操作
在osworkflow中可以实现 ?实现的方法是??
boogie 2007-10-23
这么好的东东竟有这么多的隐藏票?!我投精华!
sdy 2007-10-22
有没有eclipse下的工程啊?
luopan68 2007-09-03
新书什么时候出炉?
cucuchen520
搜索本博客
博客分类
最近加入圈子
存档
最新评论