程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> osworkflow的mysql數據庫配置

osworkflow的mysql數據庫配置

編輯:關於JAVA

今天研究了一下osworkflow,想運行一下他的例子程序看看效果。結果在配置與數據庫連接方面出了問題,郁悶至極。

我用的是mysql數據庫,按照

http://www.opensymphony.com/osworkflow/1.3%20Running%20the%20Example%20App.html一步一步的配置。

我的配置文件具體如下:

1:在tomcat的conf目錄下修改server.xml,增加以下內容

<Context path="/osworkflow_example" docBase="osworkflow-2.7.0-example"
debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
<!-- debug level is set to paranoid, to know what is happening,
turn it off once you do not need it -->
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="OSWorkflow." suffix=".log" timestamp="true"/>
<!--
put log4j.jar into:
TOMCAT_ROOT/webapp/osworkflow-2.7.0-example/WEB-INF/lib
if you want to use it for logging
-->
<Resource name="jdbc/DefaultDS"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/DefaultDS">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!--
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
-->
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/osworkflow?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>

2:配置osworkflow.xml(在WEB-INF\classes目錄下),內容如下:

<osworkflow>
<persistence class="com.opensymphony.workflow.spi.jdbc.MySQLWorkflowStore">
<!-- For jdbc persistence, all are required. -->
<property key="datasource" value="jdbc/DefaultDS"/>
<property key="entry.sequence"
value="select count(*) + 1 from os_wfentry"/>
<property key="entry.table" value="OS_WFENTRY"/>
<property key="entry.id" value="ID"/>
<property key="entry.name" value="NAME"/>
<property key="entry.state" value="STATE"/>
<!--
<property key="step.sequence" value="select sum(c1) from
(select 1 tb, count(*) c1 from os_currentstep
union select 2 tb, count(*) c1 from os_historystep)"/>
-->
<property key="step.sequence" value="select sum(c1) + 1 from (select 1 as
tb, count(*) as c1 from os_currentstep union select 2 as tb, count(*) as c1
from os_historystep) as TabelaFinal" />
<property key="step.sequence.increment" value="INSERT INTO OS_STEPIDS (ID) values (null)"/>
<property key="step.sequence.retrieve" value="SELECT max(ID) FROM OS_STEPIDS"/>
<property key="history.table" value="OS_HISTORYSTEP"/>
<property key="current.table" value="OS_CURRENTSTEP"/>
<property key="historyPrev.table" value="OS_HISTORYSTEP_PREV"/>
<property key="currentPrev.table" value="OS_CURRENTSTEP_PREV"/>
<property key="step.id" value="ID"/>
<property key="step.entryId" value="ENTRY_ID"/>
<property key="step.stepId" value="STEP_ID"/>
<property key="step.actionId" value="ACTION_ID"/>
<property key="step.owner" value="OWNER"/>
<property key="step.caller" value="CALLER"/>
<property key="step.startDate" value="START_DATE"/>
<property key="step.finishDate" value="FINISH_DATE"/>
<property key="step.dueDate" value="DUE_DATE"/>
<property key="step.status" value="STATUS"/>
<property key="step.previousId" value="PREVIOUS_ID"/>
</persistence>
</osworkflow>

3:增加propertyset.xml(在WEB-INF\classes目錄下),內容如下:

<propertysets>
<propertyset name="jdbc" class="com.opensymphony.module.propertyset.database.JDBCPropertySet">
<arg name="datasource" value="jdbc/DefaultDS"/>
<arg name="table.name" value="OS_PROPERTYENTRY"/>
<arg name="col.globalKey" value="GLOBAL_KEY"/>
<arg name="col.itemKey" value="ITEM_KEY"/>
<arg name="col.itemType" value="ITEM_TYPE"/>
<arg name="col.string" value="STRING_VALUE"/>
<arg name="col.date" value="DATE_VALUE"/>
<arg name="col.data" value="DATA_VALUE"/>
<arg name="col.float" value="FLOAT_VALUE"/>
<arg name="col.number" value="NUMBER_VALUE"/>
</propertyset>
</propertysets>

4:修改web.xml,內容如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd";>
<web-app>
<display-name>OSWorkflow Example App</display-name>
<welcome-file-list>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<description>OSWorkflow Example App</description>
<res-ref-name>jdbc/DefaultDS</res-ref-name>
<res-ref-type>javax.sql.DataSource</res-ref-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>

5:將jboss-j2ee.jar拷貝到tomcat_home\common\endorsed目錄下

6:將驅動程序拷貝到tomcat_home\common\lib目錄下

7:啟動tomcat但是報以下錯誤

嚴重: Parse error in application web.xml

java.lang.NullPointerException

at org.apache.commons.digester.Digester.createSAXException(Digester.java

:2540)

at org.apache.commons.digester.Digester.createSAXException(Digester.java

:2566)

at org.apache.commons.digester.Digester.endElement(Digester.java:1061)

at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source

)

at org.apache.xerces.impl.dtd.XMLDTDValidator.endNamespaceScope(Unknown

Source)

at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown S

ource)

at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(

Unknown Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent

Dispatcher.dispatch(Unknown Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un

known Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)

at org.apache.commons.digester.Digester.parse(Digester.java:1548)

at org.apache.catalina.startup.ContextConfig.applicationConfig(ContextCo

nfig.java:263)

at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:62

4)

at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfi

g.java:216)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl

eSupport.java:119)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4

290)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase

.java:823)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:80

7)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)

at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDep

loyer.java:277)

at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)

at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:625

)

at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:431

)

at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)

at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java

:349)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl

eSupport.java:119)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478

)

at org.apache.catalina.core.StandardService.start(StandardService.java:4

80)

at org.apache.catalina.core.StandardServer.start(StandardServer.java:231

3)

at org.apache.catalina.startup.Catalina.start(Catalina.java:556)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

sorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)

2005-1-26 10:57:44 org.apache.catalina.startup.ContextConfig applicationConfig

嚴重: Occurred at line 16 column 16

2005-1-26 10:57:44 org.apache.catalina.startup.ContextConfig start

嚴重: Marking this application unavailable due to previous error(s)

2005-1-26 10:57:44 org.apache.catalina.core.StandardContext start

嚴重: Error getConfigured

2005-1-26 10:57:44 org.apache.catalina.core.StandardContext start

嚴重: Context startup failed due to previous errors

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved