问题标签 [scalatra]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
796 浏览

scala - Simple scalatra-test specs2 example throws Exception

I'm getting this exception when running the scalatra specs2 example from the scalatra docs:

Here is the test code (starting on line 5, skipping imports):

Here is the app definition:

I'm using scalatra-specs2 2.0.4 and scala 2.9.1. I'm running an embedded jetty server using xsbt-web-plugin 0.2.10 with sbt 0.11.2. The test was executed using sbt test.

Here is the full trace:

This is the only search result that has turned up so far: Fragment Evaluation Error.

Can someone point me in the right direction?

Thanks, -f

0 投票
1 回答
1082 浏览

scala - Scalatra——请求正文中的字节数组/图像流

Internet上有大量文档如何以其他语言在HTTP POST请求中发送文件流,但在Scalatra中没有。

主题:我想通过 Scalatra post() 以字节数组或文件流的形式发送图像(对不起,草率的术语,我绝对是新手)。我已经有后端 Java 函数,它们采用字节数组,将其转换回 .jpg 图像并将其存储在服务器上。我不清楚的是如何在 Scalatra 中执行此操作的确切语法。

这就是我的帖子请求的样子:

但是,Eclipse 说重载方法 post 不能应用于 (String, (String, Array[Byte]))

在服务器端:

任何帮助将不胜感激!

0 投票
2 回答
1062 浏览

eclipse - 在 Eclipse 工作区中使用 Scalatra 应用程序?(即构建路径)

我正在试验一个小型 Scalatra Web 应用程序,我已将其作为项目导入 Eclipse。

我以前使用 Eclipse 管理过一些 Lift 应用程序。对于 Lift 项目,SBT 将所有依赖项 JAR 复制到一个/lib_managed目录中。因此,我可以将这些 JAR 添加到 Eclipse 的构建路径中,并且它可以与 SBT 共存,而不会抱怨缺少类。

然而,对于 Scalatra,依赖项 JAR 似乎不会在开发周期中被复制到任何有用的地方。如果您构建一个 WAR 文件,那么依赖项就会被捆绑到其中……但似乎没有像 Lift 的/lib-managed目录这样的东西。

假设其他人使用 Eclipse 开发 Scalatra 项目,我如何轻松设置 Eclipse 的构建路径?我想我可以手动创建一个一个指向我本地 Ivy 存储库的条目,尽管这看起来有点难看。也许有一种简单的方法可以通过 SBT 在项目目录中设置类似于 Lift 的/lib-managed子目录。

0 投票
1 回答
1179 浏览

linux - nginx 上的 Scalatra:如何设置?

想设置Scalatra在运行nginx的机器上运行。

已经正确设置了 nginx,并且能够提供静态 html 页面,但是,我现在希望将它指向一个 Scalatra 应用程序。所有可用的文档似乎都假设使用的服务器是 Jetty:例如 - http://blog.everythings-beta.com/?p=430

我假设我不能简单地将它指向文件夹,因为除此之外,码头配置还需要一个类名和一个 servlet 映射。

如何配置 nginx以指向Scalatra 应用程序

谢谢!


附加信息:

Ubuntu 12.04 是我的操作系统 - 所以答案可能是特定于此的,或者任何通常适用于Linux的东西。


奖金:

也可以加入MongoDB——即如何使用 Scalatra 和 MongoDB 设置 nginx——作为加分的答案!

0 投票
1 回答
611 浏览

scala - GlassFish 3.1.2 + 集群 + Web 容器属性

我在 Glassfish 中有一个关于处理设置 Web 应用程序的属性的问题我们正在从使用 Jetty 转移到在 Amazon AWS 上使用 GlassFish 设置集群环境

按照惯例,在处理 Servlet 时,当您想要解析环境变量时,您应该使用 .properties 文件,但是当您使用分布式环境时,这会导致问题(您必须将 .properties 文件放置在每个集群节点中)。GlassFish 能够通过其管理控制台配置 W​​eb 容器的属性,这意味着这些属性将通过集群自动分发

问题是,我在检索变量时遇到了随机行为。第一次运行测试应用程序时,我无法检索变量,但是它不再起作用

基本上我是通过管理 UI 设置环境变量。在 Configurations 下有 3 个配置项,一个用于集群(通常命名为 .config),一个 default-config 和一个 server-config。在 Web Container 下,我在所有 3 个名为“someVal”的文件中都放置了一个测试属性。

然后,我在 Scala(使用 Servlet 2.5)中创建了一个快速的 Scalatra 应用程序,并使用这一行来尝试获取属性

任何想法我做错了什么,它总是返回null?

更新 看来我试图做的不是“正确”的做事方式。所以我的问题是,在处理 GlassFish 中的集群时,提供特定应用程序设置(在 .war 之外和运行时之外)的标准方法是什么。myfear 表示使用数据库是标准方法,但是我使用这些配置设置本身来定义 JDBC 连接

0 投票
2 回答
19112 浏览

scala - 选择 Scala Web 框架

我即将开始一个应该在 Tomcat 服务器上运行的 Web 应用程序的项目。我决定选择 Scala——我工作的另一个选择是 Groovy——主要是为了类型安全。我现在面临着为工作选择合适工具的任务。

我需要开发的项目只能通过 JSON API 访问。它将与自己的数据库和两个外部服务交互,这两个服务分别公开一个 JSON 和 XML API。我还需要能够安排定期作业,我的应用程序将使用这些外部服务执行各种同步任务。

对于数据库,我希望能够在 Scala 中定义我的模型并自动生成模式。如果需要更改我的模型,我希望有迁移来处理它。

对于这个应用程序,我正在尝试评估 Lift, Play!2和斯卡拉特拉。

  • 电梯是我的第一选择。它是三个项目中最成熟的,并且似乎被认为是高度安全的(我不想在安全性上妥协)。此外,它还具有似乎是 Scala 中最好的 JSON 处理库。尽管如此,在涉足它之后,我不确定这是否是正确的选择。该文档并不是我见过的最好的。此外,在我看来,Record + Squeryl 似乎比 Mapper 更好,但这种用法的文档更加稀缺。最后,虽然 Lift 确实可以用于创建 Web 服务,但它的真正优势似乎在于状态处理,因此我不相信我的项目需要额外的复杂性。

  • 玩!2似乎有更好的文档,对我来说看起来更熟悉(我来自 Django 背景)。同样,它的默认数据库抽象并没有真正让我满意:ANORM 依赖于 SQL,它对类型检查没有帮助。无论如何我都必须使用 Squeryl,我不确定这个用例的文档是否一样好。此外,部署 Play!2 个应用程序目前比我想要的更复杂。一个必须安装播放!在生产服务器上,我不确定这是我工作的选项。否则,有一个插件可以让它与 servlets 容器一起工作,但它是非常新的,我不确定它有多稳定/可靠。

  • 最后还有使用Scalatra的选项。Scalatra 似乎很容易设置,它的设计正是为了创建 Web 服务。折衷方案是 Scalatra 没有提供太多功能。它没有与现有的 ORM 集成,也没有建议如何组织应用程序的模型部分,也无助于设计 cron 或命令行任务。我也不确定该项目的长期未来。

你认为什么是我的任务的最佳选择?

0 投票
3 回答
16890 浏览

servlets - 码头 HTTP 413 标头完整错误 - Java/Scala

我正在使用 Jetty 7.6 和 Scalatra Web 框架。在一些请求中,我需要向客户端发送一个大文本作为响应正文,我使用 HttpServletResponse.getWriter() 来编写响应。

我注意到在客户端我收到 413 Header Full 错误。显然,在 Jetty 中解决此问题的一种方法是增加 jetty 的 header-buffer-size 值。

我想知道 HttpServletResponse.getWriter() 与请求标头的大小有什么关系?!据我了解 HttpServletResponse.getWriter() 写入响应正文而不是响应标头。

如果有人可以解释这个问题,我将不胜感激。

0 投票
0 回答
781 浏览

unit-testing - 使用 specs2 对 Scalatra POST 服务进行单元测试

我正在尝试使用此测试来测试我的网络服务:

Web服务定义是:

但是我收到了 404 错误,所以我传递参数的方式似乎是错误的。

让这个测试调用我的网络服务的正确方法是什么?

更新

所以这行得通,所以我对服务的定义不是我所期望的:

0 投票
1 回答
531 浏览

scala - 尝试使用 JSON 参数定义 Scalatra 网络服务

我正在尝试使用Scalatra定义一个Web服务,其中参数在正文中传递,最好是JSON,而不是像我现在拥有的那样在url上包含所有内容。

所以,我希望这个测试通过,但是注释掉的代码是当前通过的。未注释的代码不是 JSON,但我也不确定如何通过 JSON 进行测试,因为put第二个参数中需要 Iterable。

我目前的错误定义是:

那么如何定义我的put服务来调用它PUT /phaseupdate并在正文中包含参数?

基本上,我试图限制进入网络服务器访问日志的内容。

0 投票
1 回答
767 浏览

scala - 在 Scalatra 中处理表单提交有什么好的方法吗

现在我只是使用params函数来获取已发布到 URL 的数据。

有没有其他方法可以像在 Play Framework 中那样处理 Scalatra 中的表单?Scalatra 是否支持既可用于创建表单又可自动填写表单的对象?