将osworkflow的例子移植到spring/hibernate(转)
作者:railscience 日期:2007-05-31 21:54:39
将osworkflow的例子移植到spring/hibernate- -- -
将osworkflow的例子移植到spring/hibernate- -
软件的版本
osworkflow cvs版
hibernate 2.1.7
spring cvs
数据库采用mysql
1. 安装,将osworkflow的例子发布到tomcat中,确保能正确运行
2. 创建sping/hibernate的项目,无非就是添加需要的jar文件,编写配置文件
3. 配置文件参见 http://wiki.opensymphony.com/display/WF/2.3+Spring+framework
如下是我的配置文件(数据库部分),要注意的是sessionFactory的mappingResource部分,看看自己的
osworkflow的版本,再决定。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/classes/jdbc.properties_mysql</value>
</list>
</property>
</bean>
-->
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/DefaultDS</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate.LocalSessionFactoryBean"
autowire="byName">
<property name="mappingResources">
<list>
<value>HibernateCurrentStep.hbm.xml</value>
<value>HibernateHistoryStep.hbm.xml</value>
<value>HibernateWorkflowEntry.hbm.xml</value>
<value>PropertySetItem.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
</props>
</property>
</bean>
<bean id="workflowStore"
class="com.opensymphony.workflow.spi.hibernate.SpringHibernateWorkflowStore">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
<!--
Optional PropertySet delegate, in case you want
to use another PropertySet store that is not HibernateStore
<property name="propertySetDelegate">
<ref local="propertySetDelegate"/>
</property>
-->
</bean>
<bean id="workflowFactory"
class="com.opensymphony.workflow.loader.SpringWorkflowFactory"
init-method="init">
<property name="resource">
<value>workflows.xml</value>
</property>
<property name="reload">
<value>true</value>
</property>
</bean>
<bean id="workflowTypeResolver"
class="com.opensymphony.workflow.util.SpringTypeResolver">
<!--
Here you can inject custom resolver for business logic
<property name="conditions">
<map>
<entry key="beanshell">
<value>mypackage.MyBeanShellCustomCondition</value></entry>
</map>
</property>
-->
</bean>
<bean id="osworkflowConfiguration"
class="com.opensymphony.workflow.config.SpringConfiguration">
<property name="store">
<ref local="workflowStore"/>
</property>
<property name="factory">
<ref local="workflowFactory"/>
</property>
</bean>
<!--
这里不创建workflow的bean,一般情况下创建workflow需要传入一个用户名
<bean id="workflow" class="com.opensymphony.workflow.basic.BasicWorkflow"
singleton="false" >
<constructor-arg>
<value>zjy</value>
</constructor-arg>
<property name="configuration">
<ref local="osworkflowConfiguration"/>
</property>
<property name="resolver">
<ref local="workflowTypeResolver"/>
</property>
</bean>
-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate.HibernateTransactionManager"
autowire="byName"/>
<bean id="transactionManagerInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
</beans>
4. 编写创建工作流的类
代码如下
package com.yabts.workflow;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import com.opensymphony.workflow.AbstractWorkflow;
import com.opensymphony.workflow.Workflow;
import com.opensymphony.workflow.basic.BasicWorkflow;
import com.opensymphony.workflow.config.SpringConfiguration;
import com.opensymphony.workflow.util.SpringTypeResolver;
public class CreateWorkflowController extends WorkflowController {
private String successView ;
private SpringConfiguration osWorkflowConfig;
private SpringTypeResolver springTypeResolver;
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse arg1) throws Exception {
AbstractWorkflow workflow = new BasicWorkflow((String)request.getSession().getAttribute("username"));
workflow.setConfiguration(osWorkflowConfig);
workflow.setResolver(springTypeResolver);
long id = workflow.initialize("example", 100, null);
Map map = new HashMap();
map.put("id",id);
return new ModelAndView(getSuccessView(),map);
}
public String getSuccessView() {
return successView;
}
public void setSuccessView(String successView) {
this.successView = successView;
}
public SpringConfiguration getOsWorkflowConfig() {
return osWorkflowConfig;
}
public void setOsWorkflowConfig(SpringConfiguration osWorkflowConfig) {
this.osWorkflowConfig = osWorkflowConfig;
}
public SpringTypeResolver getSpringTypeResolver() {
return springTypeResolver;
}
public void setSpringTypeResolver(SpringTypeResolver springTypeResolver) {
this.springTypeResolver = springTypeResolver;
}
}
同时在spring的配置文件中配置
<bean id="createworkflow" class="com.yabts.workflow.CreateWorkflowController">
<property name="successView">
<value>newworkflow</value>
</property>
<property name="osWorkflowConfig">
<ref bean="osworkflowConfiguration"/>
</property>
<property name="springTypeResolver">
<ref bean="workflowTypeResolver"/>
</property>
</bean>
注意点,
1. 主要是sessionFactory的mappingResource的配置,其中会涉及到propertyset的一个hbm文件,
2. 现在只支持hibernate2,本想改为hibernate3的,但是遇到了一些问题,(需要改propertyset先)
3. 需要配置jndi数据源。对于tomcat5.5可以在${tomcat.home}\conf\Catalina\localhost下创建appname.xml的方法
例子如下
<Context path="osworkflow-2.8.0-dev-example" docBase="/osworkflow-2.8.0-dev-example" swallowOutput="true">
<Resource name="jdbc/DefaultDS" auth="Container" type="javax.sql.DataSource"
username="root"
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/yabts?autoReconnect=true"/>
<Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
factory="org.objectweb.jotm.UserTransactionFactory"
jotm.timeout="60"/>
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/>
</Context>
注意需要将jdbc驱动拷贝到${tomcat.home}\common\lib下,如果配置transaction的话还要拷贝jotm.jar
将osworkflow的例子移植到spring/hibernate- -
软件的版本
osworkflow cvs版
hibernate 2.1.7
spring cvs
数据库采用mysql
1. 安装,将osworkflow的例子发布到tomcat中,确保能正确运行
2. 创建sping/hibernate的项目,无非就是添加需要的jar文件,编写配置文件
3. 配置文件参见 http://wiki.opensymphony.com/display/WF/2.3+Spring+framework
如下是我的配置文件(数据库部分),要注意的是sessionFactory的mappingResource部分,看看自己的
osworkflow的版本,再决定。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/classes/jdbc.properties_mysql</value>
</list>
</property>
</bean>
-->
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/DefaultDS</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate.LocalSessionFactoryBean"
autowire="byName">
<property name="mappingResources">
<list>
<value>HibernateCurrentStep.hbm.xml</value>
<value>HibernateHistoryStep.hbm.xml</value>
<value>HibernateWorkflowEntry.hbm.xml</value>
<value>PropertySetItem.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
</props>
</property>
</bean>
<bean id="workflowStore"
class="com.opensymphony.workflow.spi.hibernate.SpringHibernateWorkflowStore">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
<!--
Optional PropertySet delegate, in case you want
to use another PropertySet store that is not HibernateStore
<property name="propertySetDelegate">
<ref local="propertySetDelegate"/>
</property>
-->
</bean>
<bean id="workflowFactory"
class="com.opensymphony.workflow.loader.SpringWorkflowFactory"
init-method="init">
<property name="resource">
<value>workflows.xml</value>
</property>
<property name="reload">
<value>true</value>
</property>
</bean>
<bean id="workflowTypeResolver"
class="com.opensymphony.workflow.util.SpringTypeResolver">
<!--
Here you can inject custom resolver for business logic
<property name="conditions">
<map>
<entry key="beanshell">
<value>mypackage.MyBeanShellCustomCondition</value></entry>
</map>
</property>
-->
</bean>
<bean id="osworkflowConfiguration"
class="com.opensymphony.workflow.config.SpringConfiguration">
<property name="store">
<ref local="workflowStore"/>
</property>
<property name="factory">
<ref local="workflowFactory"/>
</property>
</bean>
<!--
这里不创建workflow的bean,一般情况下创建workflow需要传入一个用户名
<bean id="workflow" class="com.opensymphony.workflow.basic.BasicWorkflow"
singleton="false" >
<constructor-arg>
<value>zjy</value>
</constructor-arg>
<property name="configuration">
<ref local="osworkflowConfiguration"/>
</property>
<property name="resolver">
<ref local="workflowTypeResolver"/>
</property>
</bean>
-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate.HibernateTransactionManager"
autowire="byName"/>
<bean id="transactionManagerInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
</beans>
4. 编写创建工作流的类
代码如下
package com.yabts.workflow;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import com.opensymphony.workflow.AbstractWorkflow;
import com.opensymphony.workflow.Workflow;
import com.opensymphony.workflow.basic.BasicWorkflow;
import com.opensymphony.workflow.config.SpringConfiguration;
import com.opensymphony.workflow.util.SpringTypeResolver;
public class CreateWorkflowController extends WorkflowController {
private String successView ;
private SpringConfiguration osWorkflowConfig;
private SpringTypeResolver springTypeResolver;
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse arg1) throws Exception {
AbstractWorkflow workflow = new BasicWorkflow((String)request.getSession().getAttribute("username"));
workflow.setConfiguration(osWorkflowConfig);
workflow.setResolver(springTypeResolver);
long id = workflow.initialize("example", 100, null);
Map map = new HashMap();
map.put("id",id);
return new ModelAndView(getSuccessView(),map);
}
public String getSuccessView() {
return successView;
}
public void setSuccessView(String successView) {
this.successView = successView;
}
public SpringConfiguration getOsWorkflowConfig() {
return osWorkflowConfig;
}
public void setOsWorkflowConfig(SpringConfiguration osWorkflowConfig) {
this.osWorkflowConfig = osWorkflowConfig;
}
public SpringTypeResolver getSpringTypeResolver() {
return springTypeResolver;
}
public void setSpringTypeResolver(SpringTypeResolver springTypeResolver) {
this.springTypeResolver = springTypeResolver;
}
}
同时在spring的配置文件中配置
<bean id="createworkflow" class="com.yabts.workflow.CreateWorkflowController">
<property name="successView">
<value>newworkflow</value>
</property>
<property name="osWorkflowConfig">
<ref bean="osworkflowConfiguration"/>
</property>
<property name="springTypeResolver">
<ref bean="workflowTypeResolver"/>
</property>
</bean>
注意点,
1. 主要是sessionFactory的mappingResource的配置,其中会涉及到propertyset的一个hbm文件,
2. 现在只支持hibernate2,本想改为hibernate3的,但是遇到了一些问题,(需要改propertyset先)
3. 需要配置jndi数据源。对于tomcat5.5可以在${tomcat.home}\conf\Catalina\localhost下创建appname.xml的方法
例子如下
<Context path="osworkflow-2.8.0-dev-example" docBase="/osworkflow-2.8.0-dev-example" swallowOutput="true">
<Resource name="jdbc/DefaultDS" auth="Container" type="javax.sql.DataSource"
username="root"
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/yabts?autoReconnect=true"/>
<Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
factory="org.objectweb.jotm.UserTransactionFactory"
jotm.timeout="60"/>
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/>
</Context>
注意需要将jdbc驱动拷贝到${tomcat.home}\common\lib下,如果配置transaction的话还要拷贝jotm.jar
平均得分
(0 次评分)
评论: 187 | 查看次数: 4168
发表评论
订阅
上一篇
|

文章来自:
标签: 
embroidered patches and even easier to sell embroidered badge embroidery. “They’re a profitable add-on for any shop,” says Stephen Batts, president, Righteous Threads embroidery patches
embroidery patches, Greensboro, N.C.
dan11du
brogame
wow gold
wow gold
wow power leveling
出国留学
朗阁雅思
无锡留学中介
无锡留学
无锡朗阁
新加坡留学签证
新加坡留学申请
德国留学签证
德国留学中介
德国大学排名
德国留学申请
新加坡大学排名
buy wow accounts
wow accounts
wow account
world of warcraft account
buy wow account
新加坡留学网
德国留学网
德国留学论坛
新加坡留学费用
华申留学
新加坡留学论坛
德国留学费用
澳大利亚留学
留学马来西亚
留学澳大利亚
朗阁培训
新加坡留学中介
brogame
wow gold
wow gold
wow power leveling
wow account
wow accounts
buy wow account
buy wow accounts
world of warcraft account
澳洲大学排名
澳洲大学排名
澳洲留学费用
澳洲留学费用
澳洲大学排名
澳洲大学排名
澳洲留学签证
澳洲留学签证
澳洲留学中介
澳洲留学中介
澳洲留学网
澳洲留学网
澳洲留学论坛
澳洲留学论坛
澳洲留学申请
澳洲留学申请
日本留学
留学日本
仓储货架
货架
仓储笼
仓储笼
仓储笼
仓储笼
货架
仓储笼
塑料托盘
仓储货架
中度货架
仓储设备
货架
护栏网
护栏网
仓储笼
仓储笼
手推车
静音手推车
静音手推车
铁板手推车
钢托盘
塑料托盘
钢托盘
仓储笼
登高车
手推车
钢制料箱
护栏网
塑料托盘
托盘
仓储笼
手推车
仓储笼
钢托盘
木托盘
仓储笼
钢托盘
塑料托盘
轻型货架
中量A型货架
中量B型货架
货位货架
阁楼式货架
悬臂式货架
抽屉式货架
滚轮式货架
贯通货架
玖龙纸业
碧桂园
张茵
碧桂园
玖龙纸业
碧桂园
张茵
玖龙纸业
碧桂园
张茵
玖龙纸业
碧桂园
玖龙纸业
张茵
数据采集器
包装盒
塑料袋
混凝土静力直线切
hdpe波纹管
墙锯切割
钢筋混凝土切割
水钻排孔
北京塑料制品
国旅
pvc板
pvc管
塑料袋
纸袋
切割折除
墙体切割
玻璃钢
纸袋
包装盒
弯管机
碳素
称重仪表
自由行
超声波探伤仪
英格索兰气动工具
DID拼接墙
液晶监视器
效果图设计
澳洲旅游
海岛游
四合院
婚纱摄影
效果图
股骨头坏死
画册印刷
不干胶印刷
手提袋印刷
涂层测厚仪
粗糙度仪
超声波测厚仪
红外测温仪
粗糙度仪
红外测温仪
红外测温仪
变压吸附制氮机
变压吸附制氧机
超声波探伤仪
板材雕刻加工
板材雕刻切割
亚克力展示架
英达生态园
小汤山温泉度假村
昌平温泉度假村
超声波测厚仪
无线上网卡
卷板机
婚纱摄影
PDU
机柜插座
北京四合院
北京四合院
剪板机
折边机
铣边机
北京效果图
效果图制作
效果图公司
北京展览公司
东空气动工具
北京SEO
炭化木
深度炭化木
巴劳木地板
航空箱
航空箱
北京航空箱
航空箱
设备箱
分水器
线号机
打号机
展厅设计
科技馆设计
博物馆设计
规划展厅设计
北京展厅设计
企业展厅设计
涂层测厚仪
超声波测厚仪
变压吸附制氮机
变压吸附制氧机
出境游
北京印刷
有机玻璃加工
石墨
翻译公司
北京翻译公司
婚庆
脱发
脂溢性脱发
楼梯
楼梯
亚克力
亚克力
有机玻璃
有机玻璃
Google排名
汽车网
北京搬家
北京搬家公司
拓展
拓展训练
保洁
保洁公司
写字楼
光盘制作
光盘印刷
光盘刻录
货架
礼品
保洁
保洁公司
搬场公司
上海搬场公司
上海搬家公司
搬家公司
货架
北京婚庆
婚庆公司
显示屏
Led显示屏
电子显示屏
管道疏通
网站设计
Google排名
网页设计
网站制作
管理咨询
猎头
北京猎头
猎头公司
北京猎头公司
北京长途搬家
北京长途搬家公司
海淀搬家公司
中关村搬家公司
猎头
猎头公司
北京猎头公司
条码机
条码打印机
wow gold
powerleveling
power leveling
runescape gold
rs gold
runescape money
runescape items
Hero Gold
Hero Online Gold
FX
かに
中古車
合宿免許
渋谷 デリヘル
横浜 風俗
埼玉 風俗
千葉 風俗
アダルト
風俗
会社設立
人材派遣会社
防護服
オリジナル Tシャツ
クーリングオフ
天仙液
wow gold
wow power leveling
warhammer online power leveling
warhammer online power leveling
brogame
brogame
空调
空调
空调
新加坡留学
新加坡留学
新加坡留学
中央空调
中央空调
中央空调
商用中央空调
商用中央空调
商用中央空调
油泵
油泵
油泵
真空泵
真空泵
真空泵
胶体磨
胶体磨
胶体磨
东方医院
东方医院
东方医院
qswd00
tahchux
液下泵
液下泵
液下泵
液下泵
管道泵
管道泵
油泵
油泵
油泵
隔膜泵
隔膜泵
隔膜泵
隔膜泵
自吸泵
自吸泵
自吸泵
自吸泵
厂房出租
厂房出租
厂房
厂房
办公楼租赁
办公楼租赁
工业园区
工业园区
水泵
水泵
水泵
磁力泵
磁力泵
ghv11y
wow gold
wow power leveling
mobile Games
mobile Games
phone games
phone games
Java Games
Java Games
cell phone games
cell phone games
泵
泵
水泵
水泵
齿轮输油泵
齿轮输油泵
化工泵
化工泵
隔膜泵
隔膜泵
多级泵
多级泵
水泵
水泵
水泵
环保设备
环保设备
办公楼租赁
办公楼租赁
厂房
厂房
厂房出租
厂房出租
磁力泵
磁力泵
工业园区
工业园区
泵
化工泵
化工泵
泵
化工泵
水泵
齿轮输油泵
环保设备
办公楼租赁
mobile Games
wow gold
ghu05m
wow power leveling
cad软件下载
cad软件下载
cad软件
cad软件
cad
cad
age of conan power leveling
age of conan power leveling
age of conan gold
age of conan gold
buy warhammer online gold
warhammer online power leveling
warhammer gold
warhammer online gold
buy worhammer gold
warhammer power leveling
干洗加盟连锁
洗衣
洗衣
水洗机
水洗机
连锁干洗加盟
洗衣设备
洗衣设备
干洗机
干洗店设备
干洗店设备
爱尔兰留学费用
爱尔兰留学签证
爱尔兰留学中介
爱尔兰留学网
爱尔兰留学论坛
爱尔兰大学排名
爱尔兰留学申请
jxx1105jyo
hhygr11jxx
shuasiny
wow gold
wow power leveling
brogame
brogame
wowmine
空调
空调
美的空调
美的空调
美的空调
美的空调
磁力泵
磁力泵
磁力泵
磁力泵
海尔空调
海尔空调
上海新加坡留学中介
上海新加坡留学中介
上海新加坡留学中介
上海韩语培训
上海韩语培训
上海韩语培训
菲律宾留学
菲律宾留学
菲律宾留学
Cosmetic surgery
Cosmetic surgery
Cosmetic surgery
上海SAT培训
上海SAT培训
上海SAT培训
Cosmetic surgery
磁力泵
美的空调
海尔空调
上海韩语培训
菲律宾留学
菲律宾留学
上海新加坡留学中介
上海新加坡留学
乳腺癌
食道癌
肺癌
直肠癌
胃癌
结肠癌
肝癌
珍香胶囊
清肺散结丸
翻译公司
北京翻译公司
搬场公司
上海搬场公司
上海搬家公司
搬家公司
Google排名
楼梯
楼梯
汽车网
婚庆公司
货架
quilting machine
光盘印刷
光盘刻录
光盘制作
管理咨询
北京婚庆
货架
北京搬家
北京长途搬家
北京长途搬家公司
海淀搬家公司
中关村搬家公司
礼品
亚克力
亚克力
有机玻璃
有机玻璃
保洁
保洁公司
北京猎头公司
猎头公司
管道疏通
写字楼
猎头
北京猎头
猎头公司
北京猎头公司
Led显示屏
显示屏
电子显示屏
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健