[play-framework] Can Scala module be packaged as a WAR?

11 переглядів
Перейти до першого непрочитаного повідомлення

Ike

не прочитано,
27 квіт. 2010 р., 19:55:5027.04.10
Кому: play-framework
Hi,

I packaged an app that uses the Scala module for some Models and
Controllers. The operation worked but when I tried to deploy it on
Tomcat I got the following error:

19:46:45,602 INFO ~ Precompiling ...
19:46:47,471 ERROR ~ Cannot start in PROD mode with errors
scala.tools.nsc.MissingRequirementError: object scala not found.
at scala.tools.nsc.symtab.Definitions$definitions
$.getModuleOrClass(Definitions.scala:514)
at scala.tools.nsc.symtab.Definitions$definitions
$.ScalaPackage(Definitions.scala:43)
at scala.tools.nsc.symtab.Definitions$definitions
$.ScalaPackageClass(Definitions.scala:44)
at scala.tools.nsc.symtab.Definitions$definitions
$.UnitClass(Definitions.scala:86)
at scala.tools.nsc.symtab.Definitions$definitions
$.init(Definitions.scala:770)
at scala.tools.nsc.Global$Run.<init>(Global.scala:620)
at play.scalasupport.core.ScalaPlugin
$ScalaCompiler.compile(ScalaPlugin.scala:207)
at play.scalasupport.core.ScalaPlugin.compile(ScalaPlugin.scala:141)
at play.scalasupport.core.ScalaPlugin.compileAll(ScalaPlugin.scala:
93)
at
play.classloading.ApplicationClassloader.getAllClasses(ApplicationClassloader.java:
365)
at play.Play.preCompile(Play.java:446)
at play.Play.init(Play.java:245)
at play.server.ServletWrapper.contextInitialized(ServletWrapper.java:
54)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:
3934)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:
4429)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:
791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:
771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:
526)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:
850)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:
518)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:
297)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:
836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:
761)
at
org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:
1473)
at
org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:
824)
at
org.apache.catalina.manager.HTMLManagerServlet.deployInternal(HTMLManagerServlet.java:
285)
at
org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:
118)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
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:
191)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:
525)
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:
293)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
849)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
454)
at java.lang.Thread.run(Thread.java:637)

Is this broken or am I doing something wrong?

--
You received this message because you are subscribed to the Google Groups "play-framework" group.
To post to this group, send email to play-fr...@googlegroups.com.
To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.

Guillaume Bort

не прочитано,
28 квіт. 2010 р., 07:45:1428.04.10
Кому: play-fr...@googlegroups.com
Hi,

Since scala 2.8, the scala compiler does not share the same classpath
than the JVM anymore. It is currently solved in play server by
assigning explicitly the classpath to use since we know it.

But when the application is run in an application server we have now
way to know the current classpath for the contextual classloader. We
need to find a workaround for that.

Ike

не прочитано,
28 квіт. 2010 р., 10:49:4828.04.10
Кому: play-framework
I was afraid this would be the case. That's unfortunate because I
really love how productive it is to write webapps in Scala with Play!
For a greenfield project I would deploy to production directly (and
avoid a container completely) but I was trying to integrate it with an
existing Servlet/SpringMVC project and transition it one module at a
time.

I'll see if I can get it to work with only Java files.
> > For more options, visit this group athttp://groups.google.com/group/play-framework?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups "play-framework" group.
> To post to this group, send email to play-fr...@googlegroups.com.
> To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
> For more options, visit this group athttp://groups.google.com/group/play-framework?hl=en.

Guillaume Bort

не прочитано,
28 квіт. 2010 р., 11:11:3028.04.10
Кому: play-fr...@googlegroups.com
Well anyway, I would recommend to not use Scala for a real project for
now. We're still in the process to define the best API.
Відповісти всім
Відповісти автору
Переслати
0 нових повідомлень