当我将conf/routes
文件重命名为其他内容时,我的simple Play 2.4 project无法编译,例如conf/hello.routes
。我这样做的原因是启用API的组合,同时允许它们在单独的git存储库和sbt项目中开发。
多项目支持的想法基于this project和blog post - 但这是使用Play 2.3。
我得到的错误是:
$ sbt test
...
[info] Hello should
[error] ! give {hello: true}
[error] Unable to provision, see the following errors:
[error]
[error] 1) Error in custom provider, java.lang.ClassCastException: interface play.api.routing.Router is not assignable from class hello.routes
[error] while locating play.api.test.FakeRouterProvider
[error] while locating play.api.routing.Router
[error]
[error] 1 error (InjectorImpl.java:1025)
[error] com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025)
[error] com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
[error] play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:321)
[error] play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:316)
...
答案 0 :(得分:1)
解决了这个问题(现在git repo中的代码可以正常工作)。
问题可能与这两个问题有关:
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; ruf=mailto:dmarc@yourdomain.com;
实现希望位于包Controller
内,而不仅仅是controllers.hello
hello
文件中application.conf
命名空间,即
controllers
我只是通过将此代码与有效的样本进行比较来了解这一点。