Исполняемый файл войны, который запускает причал без Maven
Я пытаюсь сделать "исполняемый" файл войны (java -jar myWarFile.war
), который запустит веб-сервер Jetty, на котором размещено веб-приложение, содержащееся в файле WAR, который я выполнил.
я нашелстраница что описано как сделать то что я ищу:
Однако, следуя этому совету вместе с тем, как я думаю, что я должен сделать исполняемый jar (война), не работает.
У меня есть задача Ant создания файла WAR с манифестом, который выглядит следующим образом:
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.
Кажется, здесь есть две ошибки: одна, где кажется, что JAR-файлы не могут быть найдены, и одна, гдеStart
класс не может быть найден.
Чтобы исправить первый, я поместил JAR-файлы Jetty в базу WAR-файла и повторил попытку - та же ошибка. Я также попытался добавитьWEB-INF/lib/<specific-JAR-files>
кClass-Path
атрибут манифеста. Это тоже не сработало.
Есть ли у кого-нибудь понимание того, что я делаю правильно / неправильно, и как я могу запустить и запустить этот исполняемый файл WAR?