无法使用 intellij 14 和播放框架 2.4 reactivemongo 解析路由文件中的符号
Cannot resolve symbol in routes file with intellij 14 and play framework 2.4 reactivemongo
我正在使用 IntelliJ 14.1.4 和 Play 框架 2.4。我从这个 github 项目复制了一些代码:https://github.com/JAVEO/play-reactivemongo-polymer 来测试 reactivemongo。基本上,我将 Posts.scala 复制到我的控制器文件夹中。这是一个 class:
package controllers
import javax.inject.Inject
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import play.api.libs.json.Json
import play.api.mvc.{Action, BodyParsers, Call, Controller, Result}
import play.modules.reactivemongo.{MongoController, ReactiveMongoApi, ReactiveMongoComponents}
import reactivemongo.api.commands.WriteResult
import reactivemongo.bson.{BSONDocument, BSONObjectID}
import reactivemongo.core.actors.Exceptions.PrimaryUnavailableException
class Posts @Inject()(val reactiveMongoApi: ReactiveMongoApi)
extends Controller with MongoController with ReactiveMongoComponents {
...
}
在路由文件中,IntellJ 无法解析这一行:
GET /api/posts controllers.Posts.list
似乎 IntellJ 只能识别声明为对象的控制器而不是 class。
尝试运行这个使用激活器得到编译错误:
No Json serializer as JsObject found for type play.api.libs.json.JsObject. Try to implement an implicit OWrites or OFormat for this type
...
有什么帮助吗?
升级插件和intellij到最新版本解决了问题。看起来像一个错误。
我正在使用 IntelliJ 14.1.4 和 Play 框架 2.4。我从这个 github 项目复制了一些代码:https://github.com/JAVEO/play-reactivemongo-polymer 来测试 reactivemongo。基本上,我将 Posts.scala 复制到我的控制器文件夹中。这是一个 class:
package controllers
import javax.inject.Inject
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import play.api.libs.json.Json
import play.api.mvc.{Action, BodyParsers, Call, Controller, Result}
import play.modules.reactivemongo.{MongoController, ReactiveMongoApi, ReactiveMongoComponents}
import reactivemongo.api.commands.WriteResult
import reactivemongo.bson.{BSONDocument, BSONObjectID}
import reactivemongo.core.actors.Exceptions.PrimaryUnavailableException
class Posts @Inject()(val reactiveMongoApi: ReactiveMongoApi)
extends Controller with MongoController with ReactiveMongoComponents {
...
}
在路由文件中,IntellJ 无法解析这一行:
GET /api/posts controllers.Posts.list
似乎 IntellJ 只能识别声明为对象的控制器而不是 class。
尝试运行这个使用激活器得到编译错误:
No Json serializer as JsObject found for type play.api.libs.json.JsObject. Try to implement an implicit OWrites or OFormat for this type
...
有什么帮助吗?
升级插件和intellij到最新版本解决了问题。看起来像一个错误。