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