0

OK - new to Play! Framework. My project runs fine on the build-in Play server. I'm trying to deploy the same project to a server running Tomcat 7 and I'm getting the following error in my catalina.out log:

@6fn1ak9n6
Application.index action not found

Action not found
Action Application.index could not be found. Error raised is Controller controllers.Application not found

play.exceptions.ActionNotFoundException: Action Application.index not found
        at play.mvc.ActionInvoker.getActionMethod(ActionInvoker.java:599)
        at play.mvc.ActionInvoker.resolve(ActionInvoker.java:85)
        at play.server.ServletWrapper$ServletInvocation.getInvocationContext(ServletWrapper.java:567)
        at play.Invoker$Invocation.init(Invoker.java:205)
        at play.Invoker$DirectInvocation.init(Invoker.java:305)
        at play.server.ServletWrapper$ServletInvocation.init(ServletWrapper.java:535)
        at play.Invoker$Invocation.run(Invoker.java:276)
        at play.server.ServletWrapper$ServletInvocation.run(ServletWrapper.java:552)
        at play.Invoker.invokeInThread(Invoker.java:68)
        at play.server.ServletWrapper.service(ServletWrapper.java:143)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.Exception: Controller controllers.Application not found
        ... 27 more
13:17:13,090 WARN  ~ 404 -> GET /tradjenta/ (Application.index action not found)
13:17:13,093 ERROR ~

@6fn1ak9n9
Internal Server Error (500)

No route found (In /app/views/errors/404.html around line 5)
No route able to invoke action Application.index was found.

play.exceptions.NoRouteFoundException: No route found
        at play.templates.BaseTemplate.throwException(BaseTemplate.java:82)
        at play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:257)
        at play.templates.Template.render(Template.java:26)
        at play.templates.GroovyTemplate.render(GroovyTemplate.java:202)
        at play.server.ServletWrapper.serve404(ServletWrapper.java:373)
        at play.server.ServletWrapper$ServletInvocation.init(ServletWrapper.java:537)
        at play.Invoker$Invocation.run(Invoker.java:276)
        at play.server.ServletWrapper$ServletInvocation.run(ServletWrapper.java:552)
        at play.Invoker.invokeInThread(Invoker.java:68)
        at play.server.ServletWrapper.service(ServletWrapper.java:143)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:679)

My web.xml file looks like this:

<?xml version="1.0" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
        version="2.4">

  <display-name>Play! (MyApp)</display-name>

  <context-param>
    <param-name>play.id</param-name>
    <param-value>war</param-value>
  </context-param>

  <listener>
      <listener-class>play.server.ServletWrapper</listener-class>
  </listener>

  <servlet>
    <servlet-name>play</servlet-name>
    <servlet-class>play.server.ServletWrapper</servlet-class>   
  </servlet>

  <servlet-mapping>
    <servlet-name>play</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

Why do the routes work fine in the Play Server but not in Tomcat? Do i need to declare the conf/routes file in the web.xml file?

SBerg413
  • 14,515
  • 6
  • 62
  • 88
  • Why are you writing a `web.xml` at all? You should package your application by [running `play war`](http://www.playframework.com/documentation/1.2.7/deployment#appservers) and that's it. – Carsten Oct 01 '13 at 10:34
  • Yup - exactly what i'm doing. That's just the default web.xml that running play war creates. Thought it would be helpful in my question. – SBerg413 Oct 01 '13 at 10:44
  • Are you maybe trying to deploy the application as ROOT? http://stackoverflow.com/questions/6198110/play-framework-tomcat – Carsten Oct 01 '13 at 11:03

0 Answers0