如何启动Jetty8只提供静态内容?

如何启动Jetty8只提供静态内容?,jetty,Jetty,出于测试目的,我想使用Jetty 8只提供静态内容。我知道如何从命令行启动Web服务器: java-jar start.jar jetty.port=8082 我希望能够使用香草码头,最好是8号或7号码头,并使用以下方式开始: java-jar start.jar OPTIONS=resources.root=../foo jetty.port=8082 然后,应该可以从服务器的根目录访问这些文件。名为。/foo/x.html的文件应可通过http://localhost:8082/x.html

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

java-jar start.jar jetty.port=8082

我希望能够使用香草码头,最好是8号或7号码头,并使用以下方式开始:

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

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

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

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

其他信息

我尝试了以下命令。我希望能够使用
http://localhost:8080/javadoc/
,但它总是给我一个404

java-jar start.jar--ini OPTIONS=Server、resources等/jetty.xml上下文/javadoc.xml


在contexts目录下的发行版中,有一个javadoc.xml,您可以使用它作为一个示例,说明如何轻松地做到这一点

这就是它实际上的样子

您希望更改上下文路径和资源库

还建议只从start.ini文件的启动中删除jetty-webapps.xml,并删除您不想使用的上下文文件

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

去那里获取启动过程的信息


cheers

启动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>
如果省略files.base,将使用当前目录;如果省略jetty.port,将使用端口8080


--ini
将禁用start.ini中的设置,因此也确保不会激活其他处理程序等。

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


org.mortbay.jetty
jetty maven插件
8.1.9.v20130131
起动码头
安装
开始
/
${project.build.directory}/web

非常感谢您的反馈和指点。由于某种原因,我不能让它工作。我现在已经使用etc/jetty-fileserver.xml作为创建自己的通用解决方案的基础。我想easy是相对的,但我将+1,并在某个时候将其添加到jetty文档中,谢谢!无法工作的原因是jetty主目录中没有名为“javadoc”的目录。我不明白当jetty发行版没有附带javadoc时,为什么jetty会将此作为示例发布。要使上述url正常工作,您只需在jetty home中创建目录“javadoc”,并在“javadoc”目录中创建一个名为“index.html”的html文件。查看“webapps”目录中的javadoc.html,了解为什么需要执行上述步骤。
java -jar start.jar --ini static-content.xml files.base=./foo jetty.port=8082
<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>