我是码头的新手。我需要制作一个嵌入jetty的可执行jar以及war文件。双击这个jar,服务器应该启动并部署我的项目war文件。这是我写的代码。我没有使用maven。
public class TestJetty {
public static void main(String[] args) throws Exception {
int port = 9008;
Server server = new Server(port);
final String WEBAPPDIR = "war/SampleApp.war";
final URL warUrl = TestJetty.class.getClassLoader().getResource(WEBAPPDIR);
System.out.println(warUrl.toExternalForm());
WebAppContext webapp = new WebAppContext(warUrl.toExternalForm(),"/SampleApp");
server.setHandler(webapp);
server.start();
server.join();
}
}
在托管项目中,我创建了一个文件夹war并放置了SampleApp。当我从eclipse执行这个文件时它可以工作。从eclipse部署时,SampleApp执行(作为java应用程序运行)。但是,当我将它作为可执行jar(我从eclipse中导出它)时,同样不起作用。事实上,当我执行可执行jar时,会发生以下情况
1.服务器启动
2.指定路径后,路径将以超链接的形式显示。在单击此链接时,war文件将下载到我的本地系统中
我正在使用以下罐子。
servlet的API-3.0.jar
码头-JSP-2.1-7.5.4.v20111024.jar
JSP-API 2.1-6.1.5.jar
码头-UTIL-6.1.26.jar
com.sun.el-2.2.0.v.201108011116.jar
org.eclipse.jdt.core-3.7.1.jar
JSP的2.1-6.1.5.jar
码头-全8.1.9v20130131.jar
请帮我解决这个问题。我需要从可执行jar中执行war文件。