gpt4 book ai didi

jetty - 如何启动 Jetty8 以仅提供静态内容?

转载 作者:行者123 更新时间:2023-12-04 12:11:14 24 4
gpt4 key购买 nike

出于测试目的,我想使用 Jetty 8 仅提供静态内容。我知道如何从命令行启动网络服务器:

java -jar start.jar jetty.port=8082



我希望能够使用 Vanilla jetty ,最好是 8 或 7,并使用以下内容启动它:

java -jar start.jar OPTIONS=resources resources.root=../foo jetty.port=8082



然后应该可以从服务器的根目录访问这些文件。一个名为 ../foo/x.html 的文件应该可以通过 http://localhost:8082/x.html 访问.

我不想创建 WAR 文件或任何花哨的东西。最好不要在服务器端做任何缓存,让文件在 Windows 机器上解锁。此外,我只想提供文件,即使位于子目录中,没有花哨的文件浏览器或从客户端修改它们的方法。

这可能吗?如果不是,完成这种行为所需的最低配置是什么?

附加信息

我试过下面的命令。我希望能够使用 http://localhost:8080/javadoc/ 浏览 Jetty 8 附带的 javadoc。 ,但它总是给我一个 404

java -jar start.jar --ini OPTIONS=Server,resources etc/jetty.xml contexts/javadoc.xml

最佳答案

启动 Jetty 并让它提供静态内容的最简单方法是使用以下 xml 文件:

静态内容.xml:

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure id="FileServer" class="org.eclipse.jetty.server.Server">
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host"><Property name="jetty.host" /></Set>
<Set name="port"><Property name="jetty.port" default="8080"/></Set>
</New>
</Arg>
</Call>

<Set name="handler">
<New class="org.eclipse.jetty.server.handler.ResourceHandler">
<Set name="resourceBase"><Property name="files.base" default="./"/></Set>
</New>
</Set>
</Configure>

您可以使用以下命令启动 Jetty:
java -jar start.jar --ini static-content.xml files.base=./foo jetty.port=8082

如果省略 files.base,将使用当前目录;如果省略 jetty.port,则将使用端口 8080。
--ini将禁用 start.ini 中的设置,因此还要确保不会激活其他处理程序等。

关于jetty - 如何启动 Jetty8 以仅提供静态内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11246073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com