java jetty 嵌入式_java – 为嵌入式Jetty指定JAR“resources / weba...

我有一个可行的解决方案 – 我正在发布的解决方案,希望这种方法能激发正确的方法.我仍然认为应该有一种方法来指定JAR中相对于JAR的文件夹.

无论如何这种方法有效.我用它来从JAR内部服务静态Web内容.基本上我有Java解析正在运行的JAR资源的绝对路径,并将该路径名传递给Jetty.当我这样做Jetty显示我的“helloWorld.html”,欢迎文件.

String baseStr = "/webapp"; //... contains: helloWorld.html, login.html, etc. and folder: other/xxx.html

URL baseUrl = SplitFileServerRunner.class.getResource( baseStr );

String basePath = baseUrl.toExternalForm();

....

resource_handler.setDirectoriesListed(true); //... just for testing

resource_handler.setWelcomeFiles(new String[]{ "helloWorld.html" });

resource_handler.setResourceBase( basePath );

LOG.info("serving: " + resource_handler.getBaseResource());

在欢迎文件中,我已经放置了特定的文本来标识文件的来源(在资源文件夹中).在浏览器中:

> localhost:8080

提供helloWorld.html文件.

> localhost:8080 /其他

显示JAR文件中jar:/ webapp / other /目录的目录列表.这依赖于在服务器运行时不更改JAR.

在Linux上,如果有人在正在运行的JAR上运行一个新的jar文件,Jetty会给出:

HTTP ERROR: 500

Problem accessing /. Reason:

java.lang.NullPointerException

而且你不能再访问页面了.这是出乎意料的(显然JAR保持开放).好消息是,如果你mv -s jarfile:

> mv fileserver.jar fileserverXX.jar

Jetty愉快地从(重命名的)fileserverXX.jar内容继续提供服务.我很高兴.但是,我仍然想知道匹配绝对文件名的等效相对路径.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值