java -jar myWarFile.war
実行した WAR ファイルに含まれる webapp をホストする Jetty Web サーバーを起動する「実行可能な」war ファイル ( ) を作成しようとしています。
探しているものの作り方を説明したページを見つけました。
ただし、そのアドバイスに従って、実行可能な jar (戦争) を作成することになっていると思う方法は機能しません。
次のようなマニフェストで WAR ファイルを作成する Ant タスクがあります。
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.1 Created-By: 1.5.0_18-b02 (Sun Microsystems Inc.) Main-Class: Start
WAR ファイルの内容は次のようになります。
> Start.class
> jsp
> build.jsp
> META-INF
> MANIFEST.MF
> WEB-INF
> lib
> jetty-6.1.22.jar
> jetty-util.6.1.22.jar
WAR ファイルを実行しようとすると、次のエラーが表示されます。
Exception in thread "main" java.lang.NoClassDefFoundError: org/mortbay/jetty/Handler
Caused by: java.lang.ClassNotFoundException: org.mortbay.jetty.Handler
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Start. Program will exit.
ここには 2 つのエラーがあるようです。1 つは JAR ファイルが見つからないように見えるエラーで、もう 1 つはStart
クラスが見つからないエラーです。
最初のものを修正するために、Jetty JAR ファイルを WAR ファイルのベースに置き、再試行しましたが、同じエラーが発生しました。また、マニフェストWEB-INF/lib/<specific-JAR-files>
の属性に を追加してみました。Class-Path
それもうまくいきませんでした。
私が正しい/間違っていることと、この実行可能なWARファイルを起動して実行する方法について、誰かが洞察を持っていますか?