想要将Jetty设置为热部署,但没有部署者

时间:2010-10-07 11:10:33

标签: java servlets jetty hotdeploy smartfoxserver

我正在运行带有Jetty servlet容器的SmartFox 1.6服务器。我想配置Jetty以自动部署新的Web应用程序。通常,这就像向部署者添加scanInterval一样简单:

<Call name="addLifeCycle">
  <Arg>
    <New class="org.mortbay.jetty.deployer.ContextDeployer">
      <Set name="contexts"><Ref id="Contexts"/></Set>
      <Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set>
      <Set name="scanInterval">1</Set>
    </New>
  </Arg>
</Call>

但是,我在Jetty配置文件中找不到一个部署者,粘贴在下面。配置是Smartfox附带的默认配置。

很抱歉需要包含整个配置文件,但我不知道哪些块是相关的。我在哪里可以在下面的设置中设置scanInterval

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">

<!-- =============================================================== -->
<!-- Configure the Jetty Server                                      -->
<!-- =============================================================== -->
<Configure id="Server" class="org.mortbay.jetty.Server">

    <!-- =========================================================== -->
    <!-- Server Thread Pool                                          -->
    <!-- =========================================================== -->
    <Set name="ThreadPool">
      <New class="org.mortbay.thread.BoundedThreadPool">
        <Set name="minThreads">10</Set>
        <Set name="lowThreads">50</Set>
        <Set name="maxThreads">250</Set>
      </New>
    </Set>

    <!-- =========================================================== -->
    <!-- Set connectors                                              -->
    <!-- =========================================================== -->
    <!-- One of each type!                                           -->
    <!-- =========================================================== -->

    <!-- Use this connector for many frequently idle connections
         and for threadless continuations.
    -->    
    <Call name="addConnector">
      <Arg>
          <New class="org.mortbay.jetty.nio.SelectChannelConnector">
            <Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
            <Set name="maxIdleTime">30000</Set>
            <Set name="Acceptors">2</Set>
            <Set name="confidentialPort">8443</Set>
          </New>
      </Arg>
    </Call>


    <!-- Use this connector if NIO is not available.
    <Call name="addConnector">
      <Arg>
          <New class="org.mortbay.jetty.bio.SocketConnector">
            <Set name="port">8081</Set>
            <Set name="maxIdleTime">50000</Set>
            <Set name="lowResourceMaxIdleTime">1500</Set>
          </New>
      </Arg>
    </Call>
    -->

    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <!-- To add a HTTPS SSL listener                                     -->
    <!-- see jetty-ssl.xml to add an ssl connector. use                  -->
    <!-- java -jar start.jar etc/jetty.xml etc/jetty-ssl.xml             -->
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->



    <!-- =========================================================== -->
    <!-- Set handler Collection Structure                            --> 
    <!-- =========================================================== -->
    <Set name="handler">
      <New id="handlers" class="org.mortbay.jetty.handler.HandlerCollection">
        <Set name="handlers">
         <Array type="org.mortbay.jetty.Handler">
           <Item>
             <New id="contexts" class="org.mortbay.jetty.handler.ContextHandlerCollection"/>
           </Item>
           <Item>
             <New id="defaultHandler" class="org.mortbay.jetty.handler.DefaultHandler"/>
           </Item>
           <Item>
             <New id="requestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>
           </Item>
         </Array>
        </Set>
      </New>
    </Set>


    <!-- ======================================================= -->
    <!-- Configure a WebApp                                      -->
    <!-- ======================================================= -->
    <!--
    <New id="TestContext" class="org.mortbay.jetty.webapp.WebAppContext">
      <Arg><Ref id="contexts"/></Arg>
      <Arg><SystemProperty name="jetty.home" default="."/>/webapps/test</Arg>
      <Arg>/</Arg>
      <Set name="classLoader">
        <New class="org.mortbay.jetty.webapp.TransformingWebAppClassLoader">
          <Arg><Ref id="TestContext"/></Arg>
        </New>
      </Set>
      <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
      <Set name="virtualHosts">
        <Array type="java.lang.String">
          <Item>localhost</Item>
        </Array>
      </Set>

      <Get name="SessionHandler">
        <Set name="SessionManager">
          <New class="org.mortbay.jetty.servlet.HashSessionManager">
            <Set name="maxInactiveInterval">600</Set>
          </New>
        </Set>
      </Get>
    </New>
    -->

    <!-- ======================================================= -->
    <!-- Configure a Context                                     -->
    <!-- ======================================================= -->
    <New class="org.mortbay.jetty.servlet.Context">
      <Arg><Ref id="contexts"/></Arg>
      <Arg>/javadoc</Arg>
      <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/javadoc/</Set>
      <Call name="addServlet">
        <Arg>org.mortbay.jetty.servlet.DefaultServlet</Arg>
        <Arg>/</Arg>
      </Call>
    </New>

    <!-- =========================================================== -->
    <!-- Discover contexts from webapps directory                    -->
    <!-- =========================================================== -->
    <Call class="org.mortbay.jetty.webapp.WebAppContext" name="addWebApplications">
      <Arg><Ref id="contexts"/></Arg>
      <Arg><SystemProperty name="jetty.home" default="."/>/webserver/webapps</Arg>
      <Arg><SystemProperty name="jetty.home" default="."/>/webserver/cfg/webdefault.xml</Arg>
      <Arg type="boolean">True</Arg>  <!-- extract -->
      <Arg type="boolean">False</Arg> <!-- parent priority class loading -->
    </Call>

    <!-- =========================================================== -->
    <!-- Configure Realms                                            -->
    <!-- =========================================================== -->
    <Set name="UserRealms">
      <Array type="org.mortbay.jetty.security.UserRealm">
        <Item>
          <New class="org.mortbay.jetty.security.HashUserRealm">
            <Set name="name">Test Realm</Set>
            <Set name="config"><SystemProperty name="jetty.home" default="."/>/webserver/cfg/realm.properties</Set>
          </New>
        </Item>
      </Array>
    </Set>


    <!-- =========================================================== -->
    <!-- Configure Request Log                                       -->
    <!-- =========================================================== -->
    <Ref id="requestLog">
      <Set name="requestLog">
        <New id="requestLogImpl" class="org.mortbay.jetty.NCSARequestLog">
          <Arg><SystemProperty name="jetty.logs" default="./logs"/>/yyyy_mm_dd.request.log</Arg>
          <Set name="retainDays">90</Set>
          <Set name="append">true</Set>
          <Set name="extended">false</Set>
          <Set name="LogTimeZone">GMT</Set>
        </New>
      </Set>
    </Ref>

    <!-- =========================================================== -->
    <!-- extra options                                               -->
    <!-- =========================================================== -->
    <Set name="stopAtShutdown">true</Set>
    <!-- ensure/prevent Server: header being sent to browsers        -->
    <Set name="sendServerVersion">true</Set>

</Configure>

2 个答案:

答案 0 :(得分:1)

您只需将此调用添加到您的配置文件中。

答案 1 :(得分:0)

如果有人遇到此线程,请在此处回答。可以在jetty中进行热部署,您需要在jetty ini文件中而不是jetty-xmls中指定间隔,位置等。请参阅下面的官方码头文件 https://www.eclipse.org/jetty/documentation/current/hot-deployment.html