HP Operations Orchestration 9.07(现在接近 EOL)在端口 8443 上的 Jetty 6.1.14 webapp 中运行。
如何让 Jetty 6.1.14 在端口 80 上运行单独的基本 Web/文件服务器?
到目前为止我在jetty.xml
配置文件中所做的事情都没有成功:
<Configure id="FileServer" class="org.mortbay.jetty.Server">
<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.nio.SelectChannelConnector">
<Set name="port">80</Set>
</New>
</Arg>
</Call>
<Set name="handler">
<New id="Handlers" class="org.mortbay.jetty.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.mortbay.jetty.ResourceHandler">
<Item>
<New id="Contexts" class="org.mortbay.jetty.handler.ResourceHandler"/>
<Set name="directoriesListed">true</Set>
<Set name="welcomeFiles">
<Array type="String"><Item>index.html</Item></Array>
</Set>
<Set name="resourceBase">.</Set>
</New>
</Item>
<Item>
<New class="org.mortbay.jetty.server.handler.DefaultHandler"></New>
</Item>
</Array>
</Set>
</New>
</Set>
<Call name="addLifeCycle">
<Arg>
<New class="org.mortbay.jetty.deployer.WebAppDeployer">
<Set name="contexts"><Ref id="Contexts"/></Set>
<Set name="webAppDir"><SystemProperty name="jetty.home" default="."/>/webapps</Set>
</New>
</Arg>
</Call>
</Configure>
这来自一系列课程,包括https://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty#Configuring_a_File_Server_with_XML
那个版本的 Jetty 已经超过 6 年了,而 Jetty 6 本身已经 EOL 超过 4 年了。我们现在正在发布包含 HTTP/2 支持的 Jetty 9.3.x 里程碑版本。
参考 Jetty 7/8 文档将很困难,因为我们在 6 和 7 之间迁移到 Eclipse 基础,所以所有的包装都发生了变化,更不用说模块本身是如何被分割的。Jetty 6 文档仍然可以在这里找到:
http://docs.codehaus.org/display/JETTY/Jetty+Documentation
这是您要查看的部分:
http://docs.codehaus.org/display/JETTY/Static+Content
基本上,您需要注册一个 DefaultServlet 来提供静态内容,或者连接一个 ResourceHandler 来做同样的事情。两者都需要您设置一个上下文来提供静态内容。
根据在 Google+ 社区中收到的有关此问题的帮助,在 Jetty 6.1.14 中是不可能的。