我有以下代码:
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
答案 0 :(得分:0)
查看this文章。该网址由
检测ProtectionDomain protectionDomain = Start.class.getProtectionDomain();
URL location = protectionDomain.getCodeSource().getLocation();
这适用于war
项目,也可能适用于您的jar
用例。