JSW Community Editionをダウンロードして、ディレクトリに
c:\servicetest
ラップ解除しました。ここに、bin、conf、lib、logのサブディレクトリなどがあります。これからは(root)になります。
(root)/lib/wrapper.jarを自分のide(netbeans)に参照し、非常に単純なサービスを作成しました(クラス名がMainであることを思い出してください)。
public class Main extends WrapperSimpleApp {
public Main(String[] args) {
super(args);
}
@Override
public void run() {
while(true) {
Logger.getLogger(Main.class.getName()).log(Level.INFO, "I'm alive");
try
{ Thread.sleep(2000); }
catch (InterruptedException ex)
{ return; }
}
}
}
ご覧のとおり、基本的にはメッセージをログに記録するだけです。しかし、実際にはどちらも開始しません。
プロジェクト(MyProject.jar)をコンパイルし、jarを(root)ディレクトリにコピーして、(root)/config/wrapper.confを変更しました。
wrapper.java.classpath.3=../MyProject.jar
と
wrapper.java.mainclass=textappender.Main
次に、コマンドラインでサービスをインストールしました。
C:\servicetest\bin>wrapper -i ../conf/wrapper.conf
次に、services.mscコントロールパネルまたは経由でサービスを開始しました
C:\servicetest\bin>wrapper -t ../conf/wrapper.conf
logs/wrapper.logで次のようになります。
ERROR | wrapper | 2012/05/21 21:35:11 | JVM exited while loading the application.
更新1
Tanuki Softwareのアドバイスに従って、私は(root)/config/wrapper.confに設定しました(まあ、すでにコメントされていなかったのでコメントはありません):
wrapper.debug=TRUE
そして今、私はこれを手に入れます:
INFO | jvm 1 | 2012/05/22 10:46:37 | WrapperManager Debug: WrapperManager.stop(1) called by thread: main
INFO | jvm 1 | 2012/05/22 10:46:37 | WrapperManager Debug: Backend not connected, not sending packet STOP : 1
INFO | jvm 1 | 2012/05/22 10:46:37 | WrapperManager Debug: Stopped checking for control events.
DEBUG | wrapper | 2012/05/22 10:46:37 | Pause reading child process output to share cycles.
INFO | jvm 1 | 2012/05/22 10:46:37 | WrapperManager Debug: Thread, main, handling the shutdown process.
INFO | jvm 1 | 2012/05/22 10:46:37 | WrapperManager Debug: shutdownJVM(1) Thread: main
INFO | jvm 1 | 2012/05/22 10:46:38 | WrapperManager Debug: wait for 0 shutdown locks to be released.
INFO | jvm 1 | 2012/05/22 10:46:38 | WrapperManager Debug: Backend not connected, not sending packet STOPPED : 1
INFO | jvm 1 | 2012/05/22 10:46:38 | WrapperManager Debug: calling System.exit(1)
DEBUG | wrapper | 2012/05/22 10:46:38 | JVM process exited with a code of 1, setting the wrapper exit code to 1.
しかし、私の非常に単純な実装を考えると、何がうまくいかないのか推測できません。