Note that there are some explanatory texts on larger screens.

plurals
  1. POMy Jetty server will dead after a long time, why?
    text
    copied!<p>Recently, I host a website in Amazon EC2, and I use <a href="http://en.wikipedia.org/wiki/Jetty_%28web_server%29" rel="nofollow">Jetty</a> 7.4 as my server.</p> <p>I test it in my machine and EC2, and it works properly.</p> <p>But after a few weeks, it suddenly can't be accessed. Checking the log, it just said "/WEB-INF/view/index.jsp" not found. And then the whole site can't be used any more until restarting the Jetty server.</p> <p>BTW: in my project I used <a href="http://en.wikipedia.org/wiki/Spring_Framework" rel="nofollow">Spring Framework</a>, <a href="http://en.wikipedia.org/wiki/Spring_Framework#Model-view-controller_framework" rel="nofollow">Spring MVC</a>, <a href="http://en.wikipedia.org/wiki/Ehcache" rel="nofollow">Ehcache</a>, <a href="http://en.wikipedia.org/wiki/Apache_Shiro" rel="nofollow">Shiro</a>, <a href="http://en.wikipedia.org/wiki/Hibernate_%28Java%29" rel="nofollow">Hibernate</a>, <a href="http://en.wikipedia.org/wiki/Google_Web_Toolkit" rel="nofollow">Google&nbsp;Web&nbsp;Toolkit</a>, etc.</p> <p>Why?</p> <p>I almost use the default configuration file for Jetty:</p> <p><strong>Jetty configuration file:</strong></p> <p></p> <pre><code>&lt;!-- =========================================================== --&gt; &lt;!-- Server Thread Pool --&gt; &lt;!-- =========================================================== --&gt; &lt;Set name="ThreadPool"&gt; &lt;!-- Default queued blocking threadpool --&gt; &lt;New class="org.eclipse.jetty.util.thread.QueuedThreadPool"&gt; &lt;Set name="minThreads"&gt;10&lt;/Set&gt; &lt;Set name="maxThreads"&gt;200&lt;/Set&gt; &lt;Set name="detailedDump"&gt;false&lt;/Set&gt; &lt;/New&gt; &lt;/Set&gt; &lt;!-- =========================================================== --&gt; &lt;!-- Set connectors --&gt; &lt;!-- =========================================================== --&gt; &lt;Call name="addConnector"&gt; &lt;Arg&gt; &lt;New class="org.eclipse.jetty.server.nio.SelectChannelConnector"&gt; &lt;Set name="host"&gt;&lt;Property name="jetty.host" /&gt;&lt;/Set&gt; &lt;Set name="port"&gt;&lt;Property name="jetty.port" default="8080"/&gt;&lt;/Set&gt; &lt;Set name="maxIdleTime"&gt;300000&lt;/Set&gt; &lt;Set name="Acceptors"&gt;2&lt;/Set&gt; &lt;Set name="statsOn"&gt;false&lt;/Set&gt; &lt;Set name="confidentialPort"&gt;8443&lt;/Set&gt; &lt;Set name="lowResourcesConnections"&gt;20000&lt;/Set&gt; &lt;Set name="lowResourcesMaxIdleTime"&gt;5000&lt;/Set&gt; &lt;/New&gt; &lt;/Arg&gt; &lt;/Call&gt; &lt;!-- =========================================================== --&gt; &lt;!-- Set handler Collection Structure --&gt; &lt;!-- =========================================================== --&gt; &lt;Set name="handler"&gt; &lt;New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection"&gt; &lt;Set name="handlers"&gt; &lt;Array type="org.eclipse.jetty.server.Handler"&gt; &lt;Item&gt; &lt;New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/&gt; &lt;/Item&gt; &lt;Item&gt; &lt;New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/&gt; &lt;/Item&gt; &lt;/Array&gt; &lt;/Set&gt; &lt;/New&gt; &lt;/Set&gt; &lt;New id="ServerLog" class="java.io.PrintStream"&gt; &lt;Arg&gt; &lt;New class="org.eclipse.jetty.util.RolloverFileOutputStream"&gt; &lt;Arg&gt;&lt;Property name="jetty.logs" default="./logs"/&gt;/yyyy_mm_dd.stderrout.log&lt;/Arg&gt; &lt;Arg type="boolean"&gt;false&lt;/Arg&gt; &lt;Arg type="int"&gt;90&lt;/Arg&gt; &lt;Arg&gt;&lt;Call class="java.util.TimeZone" name="getTimeZone"&gt;&lt;Arg&gt;GMT&lt;/Arg&gt;&lt;/Call&gt;&lt;/Arg&gt; &lt;Get id="ServerLogName" name="datedFilename"/&gt; &lt;/New&gt; &lt;/Arg&gt; &lt;/New&gt; &lt;Call class="org.eclipse.jetty.util.log.Log" name="info"&gt;&lt;Arg&gt;Redirecting stderr/stdout to &lt;Ref id="ServerLogName"/&gt;&lt;/Arg&gt;&lt;/Call&gt; &lt;Call class="java.lang.System" name="setErr"&gt;&lt;Arg&gt;&lt;Ref id="ServerLog"/&gt;&lt;/Arg&gt;&lt;/Call&gt; &lt;Call class="java.lang.System" name="setOut"&gt;&lt;Arg&gt;&lt;Ref id="ServerLog"/&gt;&lt;/Arg&gt;&lt;/Call&gt; &lt;!-- =========================================================== --&gt; &lt;!-- extra options --&gt; &lt;!-- =========================================================== --&gt; &lt;Set name="stopAtShutdown"&gt;true&lt;/Set&gt; &lt;Set name="sendServerVersion"&gt;true&lt;/Set&gt; &lt;Set name="sendDateHeader"&gt;true&lt;/Set&gt; &lt;Set name="gracefulShutdown"&gt;1000&lt;/Set&gt; &lt;Set name="dumpAfterStart"&gt;false&lt;/Set&gt; &lt;Set name="dumpBeforeStop"&gt;false&lt;/Set&gt; </code></pre> <p></p> <h2><strong>Error details:</strong></h2> <pre><code>org.apache.jasper.JasperException: PWC6117: File "/WEB-INF/view/index.jsp" not found at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:89) at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:375) at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:169) at org.apache.jasper.compiler.JspUtil.getInputStream(JspUtil.java:910) at org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:143) at org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:376) at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:210) at org.apache.jasper.compiler.ParserController.parse(ParserController.java:140) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:435) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:360) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:538) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:517) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:284) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:115) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:538) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1352) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:476) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) at org.eclipse.jetty.server.Server.handle(Server.java:346) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589) at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1048) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:601) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:214) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529) at java.lang.Thread.run(Thread.java:636) </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload