将Scala模块添加到现有Java项目
所以我有一个相当大的剧本!使用标准Java工具进行项目。我想开始使用Scala,并认为我可以将两者结合起来。我安装了scala模块并添加了配置行。然后我添加了一个新的控制器,如下所示:将Scala模块添加到现有Java项目,java,scala,playframework,Java,Scala,Playframework,所以我有一个相当大的剧本!使用标准Java工具进行项目。我想开始使用Scala,并认为我可以将两者结合起来。我安装了scala模块并添加了配置行。然后我添加了一个新的控制器,如下所示: package controllers import play.mvc._ object Blog extends Controller { def index = "test" } 但是,当我重新启动服务器并尝试浏览时,我会得到“Blog.index action not found” 我还需要做些什
package controllers
import play.mvc._
object Blog extends Controller {
def index = "test"
}
但是,当我重新启动服务器并尝试浏览时,我会得到“Blog.index action not found”
我还需要做些什么来为这个项目添加Scala支持,或者我必须用Scala创建一个新项目,并复制所有文件
更新
路线:
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# Home page
GET /explorer Application.index
GET /signup Application.signUp
POST /register Application.register
GET /tour Main.tour
GET / Main.homePage
# Map static resources from the /app/public folder to the /public path
GET /public/ staticDir:public
* /admin module:crud
# Catch all
* / module:secure
* /{controller}/{action} {controller}.{action}
日志:
因为,不管出于什么原因*,它不是
Blog.index
,而是Blog$.index()
- 我认为这与Scala中的伴生对象成为JVM中的类的方式有关
嗯,恐怕你的问题是Windows(我知道,从你上面的评论中可以明显看出答案)。我在Play Google group中看到了一些问题,都与Windows有关。由于Scala支持在某种程度上仍然有点“实验性”,我相信您踩到了一个bug。我会和游戏团队一起创建一张罚单 希望这对@Nishant有帮助,是的,我已经看过了,但它没有包含任何对我的问题有帮助的内容。更多信息:我做了更多的测试,当我在生产linux服务器上运行该站点时,scala控制器工作正常,但当我尝试在我的开发机器(win7)上运行它时,它不工作。。。不确定问题出在哪里。如果Scala模块正常工作,你不需要使用Blog$来处理对象。是的,根据我的新发现,这不是问题。是的,这听起来肯定是我的问题。我已经在谷歌集团上发布了帖子,但我会提交一份正式的bug报告。谢谢。很抱歉不能提供更多帮助:)他们通常回答得很快,所以应该很快解决。
@65kk1d8dn
Blog.index action not found
Action not found
Action Blog.index could not be found. Error raised is Controller controllers.Blog not found
play.exceptions.ActionNotFoundException: Action Blog.index not found
at play.mvc.ActionInvoker.getActionMethod(ActionInvoker.java:447)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:78)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.Exception: Controller controllers.Blog not found
... 3 more