将Play 2.4与重命名的`conf / routes`文件一起使用

时间:2015-11-10 09:47:48

标签: playframework-2.4

当我将conf/routes文件重命名为其他内容时,我的simple Play 2.4 project无法编译,例如conf/hello.routes。我这样做的原因是启用API的组合,同时允许它们在单独的git存储库和sbt项目中开发。

多项目支持的想法基于this projectblog 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)
 ...

1 个答案:

答案 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

我只是通过将此代码与有效的样本进行比较来了解这一点。