我的Jetty服务器会在很长一段时间后死掉,为什么?
最近,我在AmazonEC2上托管了一个网站,我使用7.4作为服务器 我在我的机器和EC2中测试了它,它工作正常 但几周后,它突然无法访问。检查日志,它只是说找不到“/WEB-INF/view/index.jsp”。然后整个站点在重新启动Jetty服务器之前无法再使用 顺便说一句:在我的项目中,我用了,,,等等 为什么? 我几乎使用Jetty的默认配置文件: 码头配置文件:我的Jetty服务器会在很长一段时间后死掉,为什么?,jetty,Jetty,最近,我在AmazonEC2上托管了一个网站,我使用7.4作为服务器 我在我的机器和EC2中测试了它,它工作正常 但几周后,它突然无法访问。检查日志,它只是说找不到“/WEB-INF/view/index.jsp”。然后整个站点在重新启动Jetty服务器之前无法再使用 顺便说一句:在我的项目中,我用了,,,等等 为什么? 我几乎使用Jetty的默认配置文件: 码头配置文件: <!-- =====================================================
<!-- =========================================================== -->
<!-- Server Thread Pool -->
<!-- =========================================================== -->
<Set name="ThreadPool">
<!-- Default queued blocking 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>
<!-- =========================================================== -->
<!-- Set connectors -->
<!-- =========================================================== -->
<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>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
<!-- =========================================================== -->
<!-- Set handler Collection Structure -->
<!-- =========================================================== -->
<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 id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Item>
<Item>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>
<New id="ServerLog" class="java.io.PrintStream">
<Arg>
<New class="org.eclipse.jetty.util.RolloverFileOutputStream">
<Arg><Property name="jetty.logs" default="./logs"/>/yyyy_mm_dd.stderrout.log</Arg>
<Arg type="boolean">false</Arg>
<Arg type="int">90</Arg>
<Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg>
<Get id="ServerLogName" name="datedFilename"/>
</New>
</Arg>
</New>
<Call class="org.eclipse.jetty.util.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call>
<Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call>
<Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call>
<!-- =========================================================== -->
<!-- extra options -->
<!-- =========================================================== -->
<Set name="stopAtShutdown">true</Set>
<Set name="sendServerVersion">true</Set>
<Set name="sendDateHeader">true</Set>
<Set name="gracefulShutdown">1000</Set>
<Set name="dumpAfterStart">false</Set>
<Set name="dumpBeforeStop">false</Set>
为什么您的
index.jsp
在WEB-INF中?这个文件夹是为类、JAR文件、web服务器文件等创建的。您的JSP页面应该根本不存在
看
查看您的web.xml
和其他配置文件。运行
bin/jetty.sh check
你会发现
-Djava.io.tmpdir=/tmp
将其更改为其他文件夹,因为操作系统将在一段时间后删除
/tmp
中的文件。因为我使用Spring MVC,所以我将jsp作为视图文件放在WEB-INF下。而且网站正常工作,几周后,它突然不工作了。这是因为内存问题还是其他原因?如果我们想隐藏jsp文件以避免直接访问,就必须将其放入WEB-INF中。是的,我想这就是为什么我的应用程序在固定时间后无法工作的原因。谢谢你的帮助。
-Djava.io.tmpdir=/tmp