我即将开始一个应该运行在Tomcat服务器上的Web应用程序的项目。 我决定去Scala–另一个我正在使用Groovy的替代scheme – 基本上是为了types安全。 我现在面临为工作select正确工具的任务。 我需要开发的项目只能通过JSON API访问。 它将与自己的数据库和两个外部服务交互,这两个服务分别公开一个JSON和XML API。 我还需要能够安排周期性的工作,我的应用程序将执行与这些外部服务的各种同步任务。 对于数据库,我希望能够在Scala中定义我的模型并自动生成模式。 如果有需要改变我的模型,我想有移民来处理它。 对于这个应用程序,我正在评估Lift,Play! 2和Scalatra。 电梯是我的第一select。 这是三个项目中最成熟的,似乎被认为是高度安全的(我不想在安全上妥协)。 此外,它具有什么似乎是在斯卡拉最好的JSON处理库。 尽pipe如此,我不确定这是否是正确的select。 这个文档并不是我见过的最好的。 而且,Record + Squeryl似乎比Mapper更好的抽象,但是这个用法的文档更加稀缺。 最后,Lift虽然可以用来创buildWeb服务,但它的真正优势似乎在于处理状态,所以我不相信我的项目需要额外的复杂性。 玩! 2似乎有一个更好的文档,看起来更熟悉(我来自Django的背景)。 同样,它的默认数据库抽象并不能使我安心:ANORM依赖于SQL,这对于types检查没有帮助。 无论如何,我将不得不使用Squeryl,我不确定这个用例的文档是否一样好。 而且,部署Play! 目前有2个应用程序比我想要的要复杂得多。 一个人必须安装Play! 在生产服务器上,我不知道这是我工作的一个选项。 否则,有一个插件可以使它与servlet容器一起工作,但它是非常新的,我不确定它是多么的稳定/可靠。 最后还有使用Scalatra的选项。 Scalatra似乎很容易build立,它的devise正是为了创buildWeb服务。 妥协是Scalatra不提供太多的function。 它不与现有的ORM集成,也不build议如何组织应用程序的模型部分,也不能帮助devisecron或命令行任务。 我也不确定项目的长远未来。 你认为什么是我的任务的最佳select?