Java Play2.3:对象controllers.Map不是值

问题描述 投票:1回答:1

使用Playframework 2.3.6和jdk1.8构建Java应用程序

尝试编译我的应用程序时(使用“ activator〜run”),将引发以下错误:

/website/conf/routes:12: object controllers.Map is not a value
[error] GET     /assets/*file      controllers.Assets.at(path="/public", file)
[error] one error found
[error] (compile:compile) Compilation failed

我的路线文件如下:

# Home page
GET     /                       controllers.Application.home()
POST    /                       controllers.Application.resultsPage()

# Map static resources from the /public folder to the /assets URL path
GET     /assets/*file           controllers.Assets.at(path="/public", file)

我已经尝试过在整个应用程序中进行调整并搜索网络,但是运气不好,这似乎是一个相当基本的问题。 不确定从哪里开始,所以如果需要更多信息,请告诉我。

更新:

我在互联网上发现的与此“信息”最接近的是,当有人将Java Map函数导入到scala文件中时,出现了类似的“对象映射不是值”错误。 当我在某些控制器中使用Map函数时,看不到与Scala冲突的地方或导入地图错误的地方。

java playframework playframework-2.0
1个回答
0
投票

我已经解决了这个问题,这与我对scala map函数所做的评论有关。

该错误在routes文件中指示一行时,实际上是由框架正在编译的反向路由(即,routes_reverseRouting.scala)引发的。 那里有一张地图,无论出于什么原因,它都被当作java而不是scala来读取。 为了临时解决此问题,我将scala不可变映射函数直接导入到ReverseAssets类中并进行了编译(不幸的是,这是一个临时解决方案,就像您需要重新编译routes文件一样,它将覆盖此内容)。

我碰巧同时重构了我的控制器,这个问题本身就消失了。

© www.soinside.com 2019 - 2024. All rights reserved.