3

私はSpringMVCアプリケーションを開発しており、Mavenを使用しています。私は現在、いくつかのJava「スクリプト」を作成しようとしています(「スクリプト」と呼ぶべきかどうかはわかりません。実際には、コマンドで呼び出すことができる「main(String [] args)メソッドを持つJavaクラス」を意味しますline)Liquibaseを使用していくつかの作業を行います。

「スクリプト」は、Spring MVCアプリケーションからいくつかのコンテキストファイルをロードし、Webアプリケーションからプロパティファイルにアクセスします。したがって、アプリケーションなどと同じデータベース接続設定を使用できるようになります。

私の質問は、これらのスクリプトを実行する方法ですか?

ローカルではEclipseを使用しており、これらの「スクリプト」の実行は「Run As/JavaApplication」を使用して簡単に行えます。しかし、私はそれらを自分のprodサーバーでも実行できるようにしたいので、Eclipseを使用してそれらを起動することはできません。そこで実行できるようにするにはどうすればよいですか?

アプリケーションを.war以外の形式でエクスポートする必要がありますか?「java-jar」を使用してスクリプトを実行できるようにするには、プロジェクトから追加の.jarを作成する必要がありますか?

それらのスクリプト用に別のプロジェクトを作成する必要がありますか?しかし、スクリプトは、他のプロジェクトにあるSpring MVCアプリケーションから必要なコンテキストをロードできるでしょうか?

多分私が見ないこれを行う簡単な方法がありますか?

更新:私が望むことを達成できると思う1つの方法は 、実行するタスクへの扉としてWebサービスを公開するWebアプリケーションを用意することです。次に、コマンドラインでwgetなどを使用してそれらを呼び出すことができます。ただし、Webサービスを作成しなくても、クラスに直接アクセスできるようにしたいと思います。

4

2 に答える 2

0

「javaスクリプト」の目的は何ですか

  1. bakcgroundで定期的に何かをすること。Quartzフレームワークを使用して、ジョブを自動的にトリガーすることができます。Quartzスケジューラを参照してください
  2. 何かが正しく機能していることを確認するため。クラスでmain()メソッドを実行して、junitについて知る前に何かが正しく機能しているかどうかを確認しました。junitを参照してください
于 2012-03-23T02:07:18.570 に答える
0

(最初に、私はSOで同様の質問を見つけました。これは、私のものよりもはるかに単純で理解しやすいものです!)

私は実際に、Webアプリケーションプロジェクト自体から「スクリプト」を実行する2つの方法を見つけました。

1)Mavenがprodサーバーにインストールされている場合、スクリプトの開始時にクラスパスをそのように設定することにより、生成された「ターゲット」フォルダーからスクリプトを実行できます。

〜cd / path / to / project / target / classes

〜java -classpath ./:/path/to/project/target/myProject-0.0.1-SNAPSHOT/WEB-INF/lib/ * com.path.to.scripts.ScriptToRun

2).warが展開されたWebサーバー自体からスクリプトを実行することもできます。Tomcatを使用してテストしました。

〜cd / path / to / Tomcat / webapps / ROOT / WEB-INF / classes

〜java -classpath ./:/path/to/Tomcat/webapps/ROOT/WEB-INF/lib/ * com.path.to.scripts.ScriptToRun

于 2012-03-23T18:40:21.947 に答える