2

私はいくつかのQuartzジョブを書いています。Quartz プロパティ ファイルと Quartz ジョブ xml は、src/main/resources/quartz/ フォルダーに保存されます。

次のようなクォーツプロパティファイルへのパスを提供しています:

<!-- Quartz schedular context parameters -->
<context-param>
    <param-name>quartz:config-file</param-name>
    <param-value>classpath*:quartz.properties</param-value>
</context-param>

例外が発生しています: org.quartz.SchedulerException: Properties file: 'classpath*:quartz.properties' could not be read. [ネストされた例外を参照: java.io.FileNotFoundException: classpath*:quartz.properties (No such file or directory)]

/WEB-INF/quartz フォルダーの下に Quartz プロパティファイルを追加して、パスを指定しようとしました

<param-value>classpath*:quartz.properties</param-value>

ウェブ xml で。

私が何か間違ったことをしている場合は、提案してください。

更新: 展開された war フォルダーの Folder 構造:

appFolder - WEB-INF
           |_ classes
                   |_ quartz (with properties file in it)
                   |_ com (all class files in it)
           |_ lib
           |_ spring (spring-servlet.xml in it)
           |_ view (jsp files in it)
           |_ web.xml
4

3 に答える 3

2

問題は解決しました。Quartz は、クラスパスで Quartz.properties という名前のプロパティ ファイルを検索します。プロパティ ファイルと xml ファイルを src/main/resources フォルダーに直接配置しました。デプロイ後、これらのリソースはクラスパスに追加されます。

そして、web.xml のタグは次のようになります。

<context-param>
    <param-name>quartz:config-file</param-name>
    <param-value>quartz.properties</param-value>
</context-param>

フォルダー名にサフィックスを付けたり、そこに classpath* キーワードを指定したりする必要はありません。

ご提案いただきありがとうございます。

于 2013-02-23T10:39:10.653 に答える
0

これを試すことができますか

classpath:**/quartz.properties
于 2013-02-23T08:09:33.763 に答える
0

こちらも変更してみる

<param-name>quartz:config-file</param-name>

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

およびパラメータ値

  <param-value>classpath:quartz/quartz.properties</param-value>
于 2013-02-23T09:36:21.220 に答える