play 2.3 Маршрутизация подпроекта не является участником Ошибка

У меня возникли проблемы с маршрутизацией моего подпроекта, но я думаю, что выполнил все шаги, чтобы включить свой подпроект

|- mainProject
 |- app
 |- conf
 |- modules
  |- subProject
   |- app
    |- assets
    |- controllers
     |- subProject
      |- Application.scala
      |- Assets.scala
      |- MyCode.java
    |- models
     |- subProject
      |- MyModel.java
    |- views
     |- subProject
      |- myView.scala.html
    |- conf
     |- subProject.routes

subProject.routes

GET     /                           subProject.app.controllers.subProject.MyCode.index()
POST    /add                        subProject.app.controllers.subProject.MyCode.add
POST    /edit/:id                   subProject.app.controllers.subProject.MyCode.edit(id: Long)
GET     /load/:id                   subProject.app.controllers.subProject.MyCode.load(id: Long)
GET     /list                       subProject.app.controllers.subProject.MyCode.list()

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

myview содержит эту строку:

<script src="@controllers.subProject.routes.Assets.at("javascripts/myJavascript.js")"></script>

И я все еще получаю ошибку

[error] /path/git/mainProject/module/subProject/app/views/subProject/myview.scala.html:8: object subProject is not a member of package controllers
[error]     <script src="@controllers.subProject.routes.Assets.at("javascripts/myJavascript.js")"></script>
[error]                               ^
[error] one error found
[error] (subProject/compile:compile) Compilation failed
[error] Total time: 1 s, completed 07-Apr-2015 17:21:56

Я думаю, что мой файл маршрутов неверен, но если я сделаю это, как в документе

GET     /                           controllers.subProject.myCode.index()

я получил

[error] /path/git/mainProject/modules/subProject/conf/subProject.routes:6: object MyCode is not a member of package controllers.subProject
[error] GET     /                           controllers.subProject.MyCode.index()

поиск похожих проблем не помог. не помогу

Что я делаю не так?

редактировать: я только что обнаружил, что эта проблема маскирует другую проблему с обратными маршрутами

[error] /path/git/mainProject/modules/subProject/target/scala-2.10/src_managed/main/controllers/subProject/routes.java:8: error: cannot find symbol
[error] public static final controllers.subProject.ReverseMyCode MyCode = new controllers.subProject.ReverseMyCode();
[error]                                        ^
[error]   symbol:   class ReverseMyCode
[error]   location: package controllers.subProject
[error] /path/git/mainProject/modules/subProjecy/target/scala-2.10/src_managed/main/controllers/subProject/routes.java:11: error: package controllers.subProject.javascript does not exist
[error] public static final controllers.subProject.javascript.ReverseMyCode MyCode = new controllers.subProject.javascript.ReverseMyCode();
[error]                                                   ^
[error] /path/git/mainProject/modules/subProject/target/scala-2.10/src_managed/main/controllers/subProject/routes.java:16: error: package controllers.subProject.ref does not exist
[error] public static final controllers.subProject.ref.ReverseMyCode MyCode = new controllers.subProject.ref.ReverseMyCode();

person Madjic    schedule 08.04.2015    source источник


Ответы (1)


У меня такая же проблема. Я полагаю, что пакет MyCode.java - это modules.subProject.app.controllers.subProject.MyCode?

Это из-за вашей IDE, которая создает ваши классы в пакетах. Пакет файлов вашего подпроекта должен начинаться с controllers.subProject.

И ваш файл subProject.routes должен быть

GET     /                           controllers.subProject.MyCode.index()
POST    /add                        controllers.subProject.MyCode.add
POST    /edit/:id                   controllers.subProject.MyCode.edit(id: Long)
GET     /load/:id                   controllers.subProject.MyCode.load(id: Long)
GET     /list                       controllers.subProject.MyCode.list()

Для ошибки обратных маршрутов просто очистите свой проект activator clean compile

person c4k    schedule 08.04.2015
comment
Спасибо, работает как шарм. Мне действительно нужно перестать пытаться удовлетворить затмение - person Madjic; 09.04.2015