分享
 
 
 

Osworkflow2.8.0+hibernate3.1.3+spring1.2.8集成环境配置安装指南

王朝other·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

Osworkflow2.8.0+hibernate3.1.3+spring1.2.8集成环境配置安装指南

作者:ahxu 时间:2006年6月13日

由于osworkflow与spring及hibernate3的集成不是很完善,网上也很鲜见有成功配置的文章及例子,加上osworkflow的文档帮助有限,为了方便其它开发人员学习和使用,ahxu将把osworkflow2.8.0自带的例子与hibernate3和spring1.2.8结合在一起,给出完整的运行例子。由于是多个项目的整合,其间配置文件的内容及形式会因人而宜,很难做到统一和准确,如有疏漏和不足,请大家指出,谢谢。

测试环境安装

1. Netbeans 5简体中文版集成的Tomcat5.5

2. Mysql 5.0.20a

3. Osworkflow 2.8.0,下载地址:https://osworkflow.dev.java.net/files/documents/635/27138/osworkflow-2.8.0.zip

4. hibernate3.1.3,下载地址:http://sourceforge.net/project/showfiles.php?group_id=40712&package_id=127784&release_id=403223

5. spring1.2.8,下载地址:http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=73406&release_id=415255

应用配置

由于受项目所采用的技术影响,这里只提供了一种常见的配置形式(仅供测试,未必准确,各项目具体详细的配置安装请参见各项目的安装说明文档)。

1. %Application%\ WEB-INF\lib下需要放置的库文件有:

a) Osworkflow的支持包

包名

文件来源

commons-logging.jar

%osworkflow解压包%\lib\core

propertyset-1.4.jar

oscore-2.2.5.jar

propertyset-hibernate-1.4.jar

%osworkflow解压包%\lib\optional

bsf.jar

bsh-1.2b7.jar

ehcache.jar

osuser-1.0-dev-2Feb05.jar

osworkflow-2.8.0.jar

%osworkflow解压包%

b) Srping的支持包

包名

文件来源

spring.jar

%spring解压包%\dist

c) Hibernate的支持包

包名

文件来源

antlr.jar

%hibernate解压包%\lib

cglib.jar

asm.jar

asm-attrs.jars

commons-collections.jar

commons-logging.jar

hibernate3.jar

jta.jar

dom4j.jar

log4j.jar

2. %Application%\ WEB-INF\classes下需要放置的配置文件:

a) workflows.xml

内容略,与OSWF自带例子同。

b) example.xml

内容略,与OSWF自带例子同。

c) osuser.xml

内容略,与OSWF自带例子同。

d) propertyset.xml

<?xml version="1.0" encoding="UTF-8"?>

<propertysets>

<propertyset name="hibernate3" class="ahxu.workflow.hibernate3.HibernatePropertySet">

<arg name="hibernate.connection.datasource" value="jdbc/DefaultDS" />

<arg name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />

</propertyset>

</propertysets>

注:hibernate.dialect的值取决于你使用的数据库。

e) log4j.properties

内容略,与OSWF自带例子同。

3. %Application%\ WEB-INF\下需要放置的配置文件有:

a) web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/spring-osworkflow.xml</param-value>

</context-param>

<servlet>

<servlet-name>context</servlet-name>

<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet>

<servlet-name>SOAPWorkflow</servlet-name>

<servlet-class>com.opensymphony.workflow.soap.SOAPWorkflowServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>SOAPWorkflow</servlet-name>

<url-pattern>/soap/*</url-pattern>

</servlet-mapping>

<session-config>

<session-timeout>

30

</session-timeout>

</session-config>

<welcome-file-list>

<welcome-file>

index.jsp

</welcome-file>

</welcome-file-list>

</web-app>

b) spring-osworkflow.xml

<?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="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.hibernate3.LocalSessionFactoryBean" singleton="true">

<property name="dataSource"><ref local="dataSource"/></property>

<property name="mappingResources">

<list>

<value>com/opensymphony/workflow/spi/hibernate3/HibernateCurrentStep.hbm.xml</value>

<value>com/opensymphony/workflow/spi/hibernate3/HibernateHistoryStep.hbm.xml</value>

<value>com/opensymphony/workflow/spi/hibernate3/HibernateWorkflowEntry.hbm.xml</value>

<value>ahxu/workflow/hibernate3/PropertySetItemImpl.hbm.xml</value>

</list>

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

<prop key="hibernate.show_sql">true</prop>

<prop key="hibernate.hbm2ddl.auto">create-drop</prop>

</props>

</property>

</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" >

<ref local="sessionFactory"/>

</property>

</bean>

<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">

<property name="transactionManager"><ref local="transactionManager"/></property>

<property name="transactionAttributes">

<props>

<prop key="*">PROPAGATION_REQUIRED</prop>

</props>

</property>

</bean>

<bean id="workflow" class="org.springframework.aop.framework.ProxyFactoryBean">

<property name="singleton">

<value>false</value>

</property>

<property name="proxyInterfaces">

<value>ahxu.osworkflow.example.WebWorkflow</value>

</property>

<property name="interceptorNames">

<list>

<value>transactionInterceptor</value>

<value>workflowTarget</value>

</list>

</property>

</bean>

<!--bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">

<property name="sessionFactory"><ref local="sessionFactory"/></property>

</bean-->

<bean id="xmlWorkflowFactory" class="com.opensymphony.workflow.spi.hibernate.SpringWorkflowFactory" init-method="init">

<property name="resource"><value>workflows.xml</value></property>

<property name="reload"><value>false</value></property>

</bean>

<bean id="workflowStore" class="com.opensymphony.workflow.spi.hibernate3.SpringHibernateWorkflowStore">

<property name="sessionFactory"><ref local="sessionFactory"/></property>

<property name="propertySetDelegate">

<bean id="propertySetDelegate" class="ahxu.workflow.hibernate3.DefaultHibernatePropertySetDelegate">

<property name="sessionFactory"><ref local="sessionFactory"/></property>

</bean>

</property>

</bean>

<bean id="workflowTypeResolver" class="com.opensymphony.workflow.util.SpringTypeResolver"/>

<bean id="osworkflowConfiguration" class="com.opensymphony.workflow.config.SpringConfiguration">

<property name="store"><ref local="workflowStore"/></property>

<property name="factory"><ref local="xmlWorkflowFactory"/></property>

</bean>

<bean id="workflowTarget" class="ahxu.osworkflow.example.WebBasicWorkflow" singleton="false">

<property name="configuration"><ref local="osworkflowConfiguration"/></property>

</bean>

</beans>

注:1. hibernate.hbm2ddl.auto这里设成create-drop,这样服务器在启动时会自动重建所需表结构,上一次应用数据也会丢失;你可以跟据需要在创建完之后改成update。具体设置参见hibernate文档。

2. jndiName 的值这里要使用java:comp/env/jdbc/DefaultDS全称,如果按官方文档写jdbc/DefaultDS会报错,如果你使用Webspere则要使用jdbc/DefaultDS而不要写全称。

4. 将osworkflow的hibernate3扩展实现包放入%Application%/web-inf/lib目录下。

此包根据osworkflow站点的《Spring Framework and Hibernate 3》文档编写编绎而成,做了一些小的修改。Ahxu为方便使用打成了包,下载地址http://groups.google.com/group/ahxu/msg/5adfec0e7e83c351

5. 配置数据源jdbc/DefaultDS,关于如何配置数据源,可以参见《tomcat 5.X 的mysql DBCP配置指南及相关问题小结

测试运行

完整例子的下载地址:http://groups.google.com/group/ahxu/msg/c12d0f4a8950d22d,这个war未包含所有运行支持包,请根据此指南自行配置。运行入口文件%Application%/default.jsp文件,界面如下

具体如何使用这个例子,这里就不累述了。

注意问题

由于OSUser包的官方的版本未实现对hibernate3的支持,所以这里在进行用户管理时,也就是%Application%/manager下的操作时会出现问题。这些问题主要是User的除用户名及密码以外的属性管理上使用的了propertyset,这个兼容问题有兴趣的读者可以改写一下,或者等待新的osuser的版本。如果只是单纯的使用osuser API建立用户、设置密码及进行组管理,一般不会出现问题。

资源参考

1. Osworkflow官方网址

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有