views:

494

answers:

1

I was running the petclinic example that was created with spring roo, also I test booking-mvc example that comes whit spring webflow 2.0.9 and the same happens, this is when I reload the main page many times.

If I remove the lines from both examples there is no error.

< spring:theme code="styleSheet" var="theme_css"/>
            <spring:url value="/${theme_css}" var="theme_css_url"/>


            <spring:url value="/resources/dojo/dojo.js" var="dojo_url"/>
            <spring:url value="/resources/dijit/themes/tundra/tundra.css" var="tundra_url"/>
            <spring:url value="/resources/spring/Spring.js" var="spring_url"/>
            <spring:url value="/resources/spring/Spring-Dojo.js" var="spring_dojo_url"/>
            <spring:url value="/static/images/favicon.ico" var="favicon" />
            <link rel="stylesheet" type="text/css" media="screen" href="${theme_css_url}"><!-- //required for FF3 and Opera --></link>
            <link rel="stylesheet" type="text/css" href="${tundra_url}"><!-- //required for FF3 and Opera --></link>
            <link rel="SHORTCUT ICON" href="${favicon}" />


            <script src="${dojo_url}" type="text/javascript" ><!-- //required for FF3 and Opera --></script>
            <script src="${spring_url}" type="text/javascript"><!-- //required for FF3 and Opera --></script>
            <script src="${spring_dojo_url}" type="text/javascript"><!-- //required for FF3 and Opera --></script>
            <script language="JavaScript" type="text/javascript">dojo.require("dojo.parser");</script>

So I can deduce that this is something related with this servlet

   <servlet>
        <servlet-name>Resource Servlet</servlet-name>
        <servlet-class>org.springframework.js.resource.ResourceServlet</servlet-class>
    </servlet>


    <!--
                Map all /resources requests to the Resource Servlet for handling
        -->
    <servlet-mapping>
        <servlet-name>Resource Servlet</servlet-name>
        <url-pattern>/resources/*</url-pattern>
    </servlet-mapping>

Running the example injetty 6.1.10, tomcat 1.6, in fedora 12 with java 1.6.20, make errors. but in aix and websphere no errors, and tomcat 1.6 and windows no errors, I think that this is something related with linux.

STACKTRACE
    2010-05-21 12:53:07.733::WARN:  Nested in org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/layouts/default.jspx'.:
        org.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/layouts/default.jspx'.
         at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:691)
         at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:643)
         at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:626)
         at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:322)
         at org.springframework.web.servlet.view.tiles2.TilesView.renderMergedOutputModel(TilesView.java:100)
         at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
         at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
         at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
         at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
         at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
         at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
         at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285)
         at org.mortbay.jetty.servlet.Dispatcher.error(Dispatcher.java:135)
         at org.mortbay.jetty.servlet.ErrorPageErrorHandler.handle(ErrorPageErrorHandler.java:121)
         at org.mortbay.jetty.Response.sendError(Response.java:274)
         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:429)
         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
         at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
         at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
         at org.mortbay.jetty.Server.handle(Server.java:324)
         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
         at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
         at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
         at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
        Caused by: org.apache.tiles.util.TilesIOException: ServletException including path '/WEB-INF/layouts/default.jspx'.
         at org.apache.tiles.servlet.context.ServletUtil.wrapServletException(ServletUtil.java:232)
         at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:243)
         at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:222)
         at org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44)
         at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:103)
         at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:669)
         at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:689)
         ... 38 more
        Caused by: java.io.FileNotFoundException: /home/tsalazar/Workspace/test/roo_clinic/src/main/webapp/WEB-INF/web.xml (Too many open files)
         at java.io.FileInputStream.open(Native Method)
         at java.io.FileInputStream.<init>(FileInputStream.java:106)
         at java.io.FileInputStream.<init>(FileInputStream.java:66)
         at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
         at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
         at java.net.URL.openStream(URL.java:1010)
         at org.apache.jasper.compiler.JspConfig.processWebDotXml(JspConfig.java:114)
         at org.apache.jasper.compiler.JspConfig.init(JspConfig.java:295)
         at org.apache.jasper.compiler.JspConfig.findJspProperty(JspConfig.java:360)
         at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:141)
         at org.apache.jasper.compiler.Compiler.compile(Compiler.java:409)
         at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
         at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285)
         at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
         at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:241)
         ... 43 more
A: 

You can use lsof to find out what files are open and what process has them open.

You can increase the number of files that can be open, but that depends on your OS.

The Spring forum has a on this here.

ballmw