我是码头新手。我需要制作一个嵌入码头以及战争文件的可执行jar。双击这个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();
}
}
在托管项目中,我创建了一个文件夹战争并放置了 SampleApp。当我从 eclipse 执行这个文件时它可以工作。SampleApp 在从 eclipse 部署时执行(作为 java 应用程序运行)。但是当我将它作为可执行 jar (我从 eclipse 导出它)时,同样的方法不起作用。事实上,当我执行可执行 jar 时,会发生以下情况。
1. 服务器启动。
2. 指定路径后,路径将以超链接的形式显示。单击此链接后,war 文件将下载到我的本地系统中。
我正在使用以下罐子。
servlet-api-3.0.jar
jetty-jsp-2.1-7.5.4.v20111024.jar
jsp-api-2.1-6.1.5.jar
jetty-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
jetty-all-8.1.9v20130131.jar
请帮助我如何解决这个问题。我需要从可执行 jar 中执行我的 war 文件。