8

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

java -jar start.jar jetty.port=8082

我希望能够使用香草码头,最好是 8 或 7,并使用类似的东西启动它:

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

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

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

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

附加信息

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

java -jar start.jar --ini OPTIONS=服务器、资源等/jetty.xml 上下文/javadoc.xml

4

3 回答 3

6

启动 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 中的设置,因此还要确保不会激活其他处理程序等。

于 2012-06-29T13:18:42.777 回答
1

有点离题,但使用 maven 的人可能希望这样(假设静态资源已复制到target/web):

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.1.9.v20130131</version>
    <executions>
        <execution>
            <id>start-jetty</id>
            <phase>install</phase>
            <goals>
                <goal>start</goal>
            </goals>
            <configuration>
                <webAppConfig>
                    <resourceBases>
                        <contextPath>/</contextPath>
                        <resourceBase>${project.build.directory}/web</resourceBase>
                    </resourceBases>
                </webAppConfig>
            </configuration>
        </execution>
    </executions>
</plugin>
于 2013-09-12T14:19:32.223 回答
0

在您的发行版中,contexts 目录下有一个 javadoc.xml,您可以将其用作如何轻松完成此操作的示例。

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-distribution/src/main/resources/contexts/javadoc.xml

这就是它的实际样子

您正在寻找更改上下文路径和资源库

还建议仅从 start.ini 文件中的启动中删除 jetty-webapps.xml 并删除您不想部署的上下文文件

如果您愿意,您也可以查看在 start.ini 文件中设置一些其他选项

http://wiki.eclipse.org/Jetty/Feature/Start.jar

去那里获取信息 开始过程

干杯

于 2012-06-28T15:48:04.227 回答