2011-06-01 129 views
3

我需要在tomcat上運行play framework應用程序。 我只是做Play Framework + tomcat

./play war ganshla-ganshla -o ROOT.war --%production 

然後我加入META-INF文件夾(因爲我tryed它內部消除並得到404) 我把context.xml中到META_INF

<?xml version="1.0" encoding="UTF-8"?> 
<Context antiJARLocking="true" path="/ROOT"/> 

所以,現在我有一個錯誤頁:

Application.index行動沒有發現

在服務器日誌中我有:

play.exceptions.ActionNotFoundException: Action Application.index not found 
at play.mvc.ActionInvoker.getActionMethod(ActionInvoker.java:582) 
at play.mvc.ActionInvoker.resolve(ActionInvoker.java:84) 
at play.server.ServletWrapper$ServletInvocation.getInvocationContext(ServletWrapper.java:540) 
at play.Invoker$Invocation.init(Invoker.java:193) 
at play.Invoker$DirectInvocation.init(Invoker.java:292) 
at play.server.ServletWrapper$ServletInvocation.init(ServletWrapper.java:508) 
at play.Invoker$Invocation.run(Invoker.java:263) 
at play.server.ServletWrapper$ServletInvocation.run(ServletWrapper.java:525) 
at play.Invoker.invokeInThread(Invoker.java:67) 
at play.server.ServletWrapper.service(ServletWrapper.java:126) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.Exception: Controller controllers.Application not found 
... 23 more 
04:07:37,225 WARN ~ 404 -> GET/(Application.index action not found) 

UPDATE:

tryed使這裏discribed how to use "war.context" in Configuration file of Play Framework ?,現在我有空白頁,並在日誌

INFO: Deploying web application archive ROOT.war 
Jun 1, 2011 4:33:29 AM org.apache.catalina.loader.WebappClassLoader validateJarFile 
INFO: validateJarFile(/home/ganshla2/jvm/apache-tomcat-6.0.14/domains/ganshla-ganshla.com/ROOT/WEB-INF/lib/geronimo-servlet_2.5_spec-1.2.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 
04:33:36,470 INFO ~ Starting /home/ganshla2/jvm/apache-tomcat-6.0.14/domains/ganshla-ganshla.com/ROOT/WEB-INF/application 
04:33:37,265 INFO ~ Application is precompiled 

回答

5

此條我不知道,你不必擔心播放背景,因爲您正在將您的應用程序作爲ROOT運行。我在我的一個應用程序中自己嘗試了這個,它似乎工作正常,但是我使用的部署選項稍有不同。

我採取的步驟是

play new wartest 

然後我編輯的index.html表明,一些「真實」是越來越部署。所以我在下面添加了幾行代碼。

#{extends 'main.html' /} 
#{set title:'Home' /} 

Welcome to my first tomcat-play application. 

最後我創建了要部署的文件。

play war wartest -o ROOT 

這將創建一個分解的WAR文件,並允許我簡單地將其放入Tomtact Webapps目錄中。

我不需要使用上下文或META-INF。這只是一個簡單的測試,只是爲了看它的工作原理,但由於你的應用程序甚至沒有顯示索引頁面,所以我懷疑你甚至會進行我的簡單測試。

我測試了使用

  • 的Tomcat 7
  • 的Java 6
  • 和Windows 7

我懷疑你的問題是與你的ROOT.war文件的命名。