无法使用 intellij 14 解析路由文件中的符号并播放框架 2.4 reactivemongo

Posted

技术标签:

【中文标题】无法使用 intellij 14 解析路由文件中的符号并播放框架 2.4 reactivemongo【英文标题】:Cannot resolve symbol in routes file with intellij 14 and play framework 2.4 reactivemongo 【发布时间】:2015-08-20 09:30:25 【问题描述】:

我正在使用 IntelliJ 14.1.4 和 Play 框架 2.4。我从这个 github 项目中复制了一些代码:https://github.com/JAVEO/play-reactivemongo-polymer 来测试 reactivemongo。基本上,我将 Posts.scala 复制到了我的控制器文件夹中。这是一个类:

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 似乎只识别声明为对象的控制器而不识别类。

尝试使用 activator 运行时出现编译错误:

No Json serializer as JsObject found for type play.api.libs.json.JsObject. Try to implement an implicit OWrites or OFormat for this type
...

有什么帮助吗?

【问题讨论】:

由于原始示例应用程序运行良好,因此有必要检查您的依赖关系并正确使用import play.modules.reactivemongo.json._:reactivemongo.org/releases/0.11/documentation/… 我认为这里有两个问题。第一个问题是 IntelliJ 无法解析注入的路由。第二个问题是 Json 序列化器。我尝试导入 github 示例。 IntelliJ 也无法解析 controllers.Posts.list。 第二个问题,原来是和play reactivemongo 版本有关。在我的 build.sbt 中,我使用了“0.11.6.play24”作为reactivemongo 建议的教程。这会导致“No Json ...”的错误消息。我像 github 示例一样将版本更改为“0.11.0.play24”。错误消息消失了。 如图所示检查导入是否与使用的版本相对应。 我尝试添加import play.modules.reactivemongo.json._ 并使用0.11.6.play24。它没有解决问题。仍然抛出 No Json 错误。 【参考方案1】:

升级插件和intellij到最新版本解决了这个问题。看起来像一个错误。

【讨论】:

以上是关于无法使用 intellij 14 解析路由文件中的符号并播放框架 2.4 reactivemongo的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ中的Spring boot + thymeleaf:无法解析变量

无法解析 IntelliJ 中的符号 ResultSet

IntelliJ 和 JSP/JSTL 无法解析 tomcat7 中 JSTL 的 taglib

如何解决 IntelliJ IDEA 中的“无法解析符号”? [复制]

JAR 中的资源未在 IntelliJ 中正确解析

无法在 IntelliJ 14 Ultimate 中添加框架支持