嵌入式jetty应用程序无法从jar工作

时间:2011-03-16 17:16:50

标签: java jetty embedded-jetty

我有以下代码:

    Server server = new Server(9090);

    final URL warUrl = Main.class.getClassLoader().getResource("com/domain/webapps/app");
    final String warUrlString = warUrl.toExternalForm();
    WebAppContext wac = new WebAppContext(warUrlString, "/app");

    server.setHandler(wac);

我在Main包中有com.domain个课程。

jsp和html位于com.domain.webapps.app包中。

在Netbeans(或爆炸jar上的java -cp <classpath> com.domain.Main)内运行时,应用程序运行正常。

如果我运行jar(java -jar app.jar),com.domain.webapps.app的内容会被解压缩到/tmp/Jetty_something/webapp/,因此完整路径为/tmp/Jetty_something/webapp/com/domain/webapps/app/

但是当我发出http://localhost:9090/app/file.jsp的请求时,Jetty会尝试从/tmp/Jetty_something/webapp/file.jsp获取文件(错误的地方:-()

我能在哪里做?

Jetty版本是6.1.26

1 个答案:

答案 0 :(得分:0)

查看this文章。该网址由

检测
ProtectionDomain protectionDomain = Start.class.getProtectionDomain();
URL location = protectionDomain.getCodeSource().getLocation();

这适用于war项目,也可能适用于您的jar用例。