2011-07-21 13 views
0

私はQuartz JobStoreCMTを抱きしめて、Springのデータソースを管理データソースとして使用しようとしています。ここでSpringデータソースを使ってQuartz CMT jobStoreを設定する

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 
    <property name="driverClassName" value="${database.driverClassName}" /> 
    <property name="url" value="${database.url}" /> 
    <property name="username" value="${database.username}" /> 
    <property name="password" value="${database.password}" /> 
</bean> 

私quartz.propertiesされています:ここでは、データソースの定義と私の春のconfigファイルがある

org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreCMT 
org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate 
org.quartz.jobStore.useProperties: false 
org.quartz.jobStore.dataSource = managedTXDS 
org.quartz.jobStore.nonManagedTXDataSource = qzDS 
org.quartz.jobStore.tablePrefix: QRTZ_ 
org.quartz.jobStore.isClustered: false 

#============================================================================ 
# Configure Datasources 
#============================================================================ 
org.quartz.dataSource.managedTXDS.jndiURL=java:comp/env/jdbc/dataSource 

org.quartz.dataSource.qzDS.driver: com.mysql.jdbc.Driver 
org.quartz.dataSource.qzDS.URL: jdbc:mysql://localhost:3306/myschema 
org.quartz.dataSource.qzDS.user: user 
org.quartz.dataSource.qzDS.password: pwd 
org.quartz.dataSource.qzDS.maxConnections: 5 
org.quartz.dataSource.qzDS.validationQuery=select 0 from dual 

私は、私は次のエラーを取得していますスケジューラを初期化しようと私のユニットテストを実行:

2011-07-20 21:38:22,477 [main] ERROR org.quartz.utils.JNDIConnectionProvider - Error looking up datasource: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source) 
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source) 
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source) 
... 
org.quartz.JobPersistenceException: Failed to obtain DB connection from data source 'managedTXDS': java.sql.SQLException: Could not retrieve datasource via JNDI url 'java:comp/env/jdbc/dataSource' javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial [See nested exception: java.sql.SQLException: Could not retrieve datasource via JNDI url 'java:comp/env/jdbc/dataSource' javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial] 
at org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:726) 
at org.quartz.impl.jdbcjobstore.JobStoreCMT.executeInLock(JobStoreCMT.java:231) 

だから、これはorg.quartz.dataSource.managedTXDS.java.naming.factory.initialおよび/またはorg.quartz.dataSource.managedTXDS.jndiURL = javaの指定に問題がある:COMP/EN v/jdbc/dataSource?

JNDIファクトリ設定がない場合、Springの値は何ですか?

ありがとうございました! マリーナ

答えて

1

ご提案のための

org.quartz.jobStore.class = org.springframework.scheduling.quartz.LocalDataSourceJobStore 
+0

感謝としてこれを設定し

http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/scheduling/quartz/LocalDataSourceJobStore.html

@見てください。私はそれを試してもう少し進んだ。私が得ている次のエラーはこれです:実際には、別に投稿された私の答えを見てください - コメントでフォーマットされたコードとテキストをすべて追加するのは難しいです... – Marina

+0

上記のリンクから、この必要はありません: "このJobStoreが使用されますSchedulerFactoryBeanの「dataSource」プロパティが設定されている場合。 –

関連する問題