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

时间:2011-03-07 17:43:07

标签: java scala playframework

所以我有一个相当大的游戏!项目使用标准的Java东西。我想开始使用Scala,并认为我可以将两者结合起来。我安装了scala模块并添加了配置行。然后我添加了一个像这样的新控制器:

package controllers

import play.mvc._

object Blog extends Controller {
  def index = "test"
}

但是,当我重新启动服务器并尝试浏览http://localhost:9000/Blog/index时,我收到“未找到Blog.index操作”

我需要做些什么来为这个项目添加Scala支持,还是我必须从get get创建一个带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}

日志:

@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

2 个答案:

答案 0 :(得分:3)

因为无论出于何种原因*,它不是Blog.index,而是Blog$.index()

  • 我假设它是关于Scala中的伴随对象成为JVM中的类的方式。

答案 1 :(得分:3)

你检查了路线文件吗?它包含控制器/操作的路径?并且服务器启动没有任何错误吗?

在我看来路线文件中有错误,您是否可以添加配置以及您看到的完整错误消息?

编辑(添加路线后):

mm我担心你的问题是Windows(我上面的评论明显回答,我知道)。我在Play Google小组中看到了一些与Windows相关的问题。由于Scala的支持在某种程度上仍然有点“实验性”,我只相信你踩到了一个bug。我会和Play团队一起创建一张票。