Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Scala模块添加到现有Java项目_Java_Scala_Playframework - Fatal编程技术网

将Scala模块添加到现有Java项目

将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” 我还需要做些什

所以我有一个相当大的剧本!使用标准Java工具进行项目。我想开始使用Scala,并认为我可以将两者结合起来。我安装了scala模块并添加了配置行。然后我添加了一个新的控制器,如下所示:

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