【问题标题】:What is a best solution for hot deploy to Jetty?热部署到 Jetty 的最佳解决方案是什么?
【发布时间】:2010-10-08 07:57:51
【问题描述】:

我有一个在码头上运行的网络应用程序。继续构建基于 hudson。我想根据 hudson 的要求进行热部署。

我找到了应该能够做到这一点的货物插件,但货物的网络没有显示任何完整的示例如何做到这一点 - 对于远程码头服务器 - 我可能会想念它吗?

你有什么建议?您还有其他更好的解决方案吗?

谢谢你,

维泰克

【问题讨论】:

  • 您使用的是哪个版本的 Jetty? Cargo 仅对 Jetty 6.x+ 提供远程部署支持(并且仅适用于 Maven 2 插件)。

标签: java deployment jetty


【解决方案1】:

对于使用 Windows 的用户,如果遇到文件锁定错误,请访问:

http://docs.codehaus.org/display/JETTY/Files+locked+on+Windows

Windows 将 Jetty 加载到内存中的文件锁定。上面的链接将向您展示如何防止这种情况发生。

【讨论】:

  • 死链接! :( 不应该用这样的链接回答问题
  • @NicholasDiPiazza 您可以使用互联网档案中的一个更新链接。原始帖子是您发表评论之前的 6 年,旧帖子上的链接变坏是很常见的。
【解决方案2】:

Cargo 的 documentation 表明可以通过 maven 2 部署到码头。

这里是configuration

我假设你尝试过这个? 出了什么问题?

【讨论】:

    【解决方案3】:

    Jetty:可以作为独立运行:只需远程复制您构建的战争。 独立的 Jetty 实例可以在独立的端口上运行。

    Yml:例如

    <Set name="ThreadPool">
      -->
      <New class="org.mortbay.thread.QueuedThreadPool">
        <Set name="minThreads">10</Set>
        <Set name="maxThreads">50</Set>
        <Set name="lowThreads">5</Set>
        <Set name="SpawnOrShrinkAt">2</Set>
      </New>
    
    </Set>
    
    
    
    
    <Call name="addConnector">
      <Arg>
          <New class="org.mortbay.jetty.nio.SelectChannelConnector">
            <Set name="host"><SystemProperty name="jetty.host" default="0.0.0.0" /></Set>
            <Set name="port"><SystemProperty name="jetty.port" default="8880"/></Set>
            <Set name="maxIdleTime">300000</Set>
            <Set name="Acceptors">2</Set>
            <Set name="statsOn">false</Set>
            <Set name="confidentialPort">8441</Set>
            <Set name="lowResourcesConnections">20000</Set>
            <Set name="lowResourcesMaxIdleTime">5000</Set>
          </New>
      </Arg>
    </Call>
    
    <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>
    
    <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>
    
    <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="."/>/etc/realm.properties</Set>
            <Set name="refreshInterval">0</Set>
          </New>
        </Item>
      </Array>
    </Set>
    
    <Ref id="RequestLog">
      <Set name="requestLog">
        <New id="RequestLogImpl" class="org.mortbay.jetty.NCSARequestLog">
          <Set name="filename"><SystemProperty name="jetty.logs" default="./logs"/>/yyyy_mm_dd.request.log</Set>
          <Set name="filenameDateFormat">yyyy_MM_dd</Set>
          <Set name="retainDays">90</Set>
          <Set name="append">true</Set>
          <Set name="extended">true</Set>
          <Set name="logCookies">false</Set>
          <Set name="LogTimeZone">GMT</Set>
        </New>
      </Set>
    </Ref>
    
    <Set name="stopAtShutdown">true</Set>
    <Set name="sendServerVersion">true</Set>
    <Set name="sendDateHeader">true</Set>
    <Set name="gracefulShutdown">1000</Set>
    

    【讨论】:

      最近更新 更多