Jetty.xml访问静态内容

时间:2014-09-10 20:59:37

标签: java xml jetty

我正在尝试使用jetty.xml配置访问部署了war的服务器上的静态内容。我使用了ResourceHandler,它工作但我再也无法访问网站内容了。我尝试添加DefaultHandler但我仍然无法访问“/”上的内容。我是否必须为其他请求添加特定处理程序?

这是我的jetty.xml:

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

<Configure id="Server" class="org.eclipse.jetty.server.Server">

    <Set name="ThreadPool">
      <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
        <Set name="minThreads">10</Set>
        <Set name="maxThreads">200</Set>
        <Set name="detailedDump">false</Set>
      </New>
    </Set>

  <New id="sslContextFactory" class="org.eclipse.jetty.http.ssl.SslContextFactory">
    <Set name="KeyStore"><Property name="jetty.home" default="." />//etc/mykeystore.keystore</Set>
    <Set name="KeyStorePassword">xxxxxxx</Set>
    <Set name="KeyManagerPassword">xxxxxxxx</Set>
  </New>

  <Call name="addConnector">
    <Arg>
      <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
        <Arg><Ref id="sslContextFactory" /></Arg>
        <Set name="Port">443</Set>
        <Set name="maxIdleTime">30000</Set>
        <Set name="Acceptors">2</Set>
        <Set name="AcceptQueueSize">100</Set>
      </New>
    </Arg>
  </Call>

  <Set name="handler">
      <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
        <Set name="handlers">
         <Array type="org.eclipse.jetty.server.Handler">
           <Item>
              <New class="org.eclipse.jetty.server.handler.ContextHandler">
                  <Set name="contextPath">/img</Set>
                  <Set name="handler">
                      <New class="org.eclipse.jetty.server.handler.ResourceHandler">
                          <Set name="directoriesListed">false</Set>
                          <Set name="resourceBase">/home/img</Set>
                      </New>
                  </Set>
              </New>
          </Item>
         </Array>
        </Set>
      </New>
    </Set>
</Configure>

1 个答案:

答案 0 :(得分:0)

使用Jetty 9,只需在${jetty.base}/webapps/中创建一个目录并将您的内容放在那里。

例如,如果您创建了

 ${jetty.base}/webapps/static/css/main.css

然后将从/static/上下文提供,使以下内容成为对该内容的有效访问权。

http://localhost:8080/static/css/main.css

这称为静态资源部署,是Jetty默认部署配置中默认部署技术的一部分。

您还可以使用上下文可部署的xml在磁盘上的任何位置声明所需的任意静态内容。

请参阅:https://www.eclipse.org/jetty/documentation/current/static-content-deployment.html