相关疑难解决方法(0)

在没有maven的情况下启动jetty的可执行war文件

我正在尝试创建一个"可执行"war文件(java -jar myWarFile.war),它将启动一个Jetty网络服务器,它托管我执行的WAR文件中包含的webapp.

我找到了一个页面,描述了如何制作我正在寻找的东西:

然而,遵循这个建议,以及我认为我应该制作一个可执行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
Run Code Online (Sandbox Code Playgroud)

WAR文件的内容如下所示:

> Start.class
> jsp
>   build.jsp 
> META-INF  
>   MANIFEST.MF
> WEB-INF
>   lib
>     jetty-6.1.22.jar
>     jetty-util.6.1.22.jar
Run Code Online (Sandbox Code Playgroud)

当我尝试执行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.
Run Code Online (Sandbox Code Playgroud)

这里似乎有两个错误:一个似乎无法找到JAR文件,另一个找不到Start类.

为了修复第一个,我将Jetty …

java executable jetty war manifest

52
推荐指数
5
解决办法
4万
查看次数

标签 统计

executable ×1

java ×1

jetty ×1

manifest ×1

war ×1