问题标签 [spray]

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 回答
1591 浏览

akka - 我怎样才能让 Shiro 在 Scala + Akka + Spray 环境中工作

我想我没有正确理解工作流程。我正在使用 Apache Shiro 和 Stormpath 在 Scala 中编写 Web 服务。我的用户身份验证过程如下所示:

1) 从 POST 请求中获取用户数据,使用 Stormpath 检查,如果一切正常,重定向到某个页面:

在日志中没关系,Shiro 用 Stormpath 帐户返回给我一个正确的主题。接下来我想提取主题,在代码中使用它:


loggedInUser指令应该提取主题并检查它是否经过身份验证,否则重定向到登录表单。问题是它总是将我重定向到登录表单,尽管在日志SubjectUtils.getSubject.getPrincipal中显示了正确的帐户。

更新

实际上,Spray 是建立在 Akka 之上的。所以我认为问题出在getSubject实现背后,目前取决于 ThreadLocal 环境。我搜索了 Shiro + Akka 主题,但没有找到任何有用的信息。

0 投票
1 回答
369 浏览

sbt - sbt 更新而不添加 io.spray 工件

我有一个运行良好的 sbt 项目,但在重新加载后停止加载工件。更新正确地解决了依赖关系,但由于某些原因,现在不包括项目中的库,如以下显示更新所示(请注意,许多 Spray-io 模块没有工件)。任何想法如何解决这个问题?

0 投票
1 回答
4494 浏览

scala - 如何解构 Spray API HTTPResponse?

我正在使用 Spray API(spray-client)来访问内部 Solr URL,我希望能够将响应解析为 Scala 案例类。

如果我只是期望和 HTTPResponse,我会得到一个值,但是当我尝试将它编组到我的案例类中时,它会失败(我不能产生除 null() 之外的消息,因为我正在使用匹配和显然没有得到正确的测试用例。)

我认为我的一些问题是它以的形式返回数据text/plain而不是application/json. 当我期望 HttpResponse 而不是我的案例类时,

我得到:

但是当我改变它以期望我的案例类时,我无法匹配。那么,如何将它返回的数据编组到 Scala 案例类中呢?这是我尝试过的:

f onComplete ...这让我在结构中无法匹配。问题可能是我的案例类与返回的内容不匹配,如果是这样,您有什么建议可以更好地解决它?

我一直在研究文档,它们要么不完整,要么有点过时,而且我是这个游戏的新手,所以这也无济于事。

0 投票
1 回答
809 浏览

scala - 对于 url 编码的 POST 的参数,您将如何实现 String 到 json 对象解组器?

对于 url 编码的 POST 的参数,您将如何实现 String 到 json 对象解组器?我正在使用 1.2 版。

这就是我想要的。Foursquare 将 url 编码的 POST 推送到我的服务。我的路线看起来像这样

我有 json 解析器,FsqCheckin它的定义如下

所以这一切都很好,但它只有在参数被表单编码时才有效。否则喷雾说

所以我想我会写 unmarshaller。我写了这个

但是如果我把它带到我的路线范围内,我会得到以下编译错误

如果范围内没有 json 解析器,这与我遇到的错误相同FsqCheckin

我该如何处理这个问题?

0 投票
2 回答
513 浏览

scala - 如何编写泛型隐式转换?

你能帮我写通用隐式转换吗?

我正在使用 Scala 2.10.2 和 Spray 1.2。

这是我所拥有的

如您所见,HttpEntity->ObjectId 的反序列化器仅使用 String->ObjectId 反序列化器。我必须为我在 HTTP 路由特征中使用的每个类复制粘贴这样的代码。

所以我想如果我可以编写通用的 HttpEntity->T ,它将Deserializer[String, T]在范围内使用。

我试过这个:

可悲的是它不起作用。并说:

你能建议怎么做吗?

0 投票
1 回答
2141 浏览

scala - java.lang.VerifyError 函数参数不兼容

sbt run对于我编写的 Spray 示例应用程序,我遇到了一个奇怪的错误,它编译得很好,而且我只在我的个人计算机上收到错误,因为它在另一台计算机上工作正常。

这是我认为相关的来源,它是来自Spray 示例代码的模板代码,但我认为这不是原因。

这是堆栈跟踪

如评论中所述,这可能是一个classpath问题,但我不知道如何调试。巧合与否,这发生在我从 Mac OS X Java 6 升级到 Java 7 之后,两台机器上都有 Java 7。任何见解将不胜感激。

如果这可能会有所帮助,这是classpath来自 的转储sbt console,编译和运行时相同

如果有人想尝试用 Java 7 重新编译然后sbt run,请随时从repo中获取它。

0 投票
1 回答
1021 浏览

unit-testing - 如果我的特质使用自我类型限制,我该如何创建模拟?

我正在尝试使用蛋糕图案和模拟。在阅读了一堆包含大量时髦术语的博客文章后,我无法让它发挥作用:(

我正在使用 Spray 并拥有以下 http 服务

AppProvider在哪里

对于真正的服务器,我像这样组合它

在哪里RealApiManager延伸AppProvider

ApiManager必须混入DbProvider其中看起来像这样

在我的单元测试中,我只想测试 http 部分并进行了模拟ApiManager,它只是检查客户端传递的对象是否正确。

我不能做到这一点

因为ApiManager必须与DbProvider. 我怎样才能解决这个问题 ?我现在看到两个选项:

  • 切换到可以使用带参数的构造函数实例化类的模拟库(例如 Mockito)
  • 添加init(db : DBManager)方法并拥有var其中ApiManager丑陋的
0 投票
4 回答
7040 浏览

scala - Scala 参数模式(喷雾路由示例)

抱歉标题含糊……不知道如何描述这一点。

一段时间以来,我已经在 Scala 中看到/使用了某种代码结构,但我不知道它是如何工作的。它看起来像这样(来自喷雾路由的示例):

在此示例中,路径中的分段分别绑定到关联块内的 a 和 b。我知道如何使用这种模式,但它是如何工作的?为什么它没有将某些东西绑定到“foo”?

我对喷雾如何在这里达到我的目的不太感兴趣,但是这是 Scala 的什么工具,我将如何编写自己的工具?

0 投票
2 回答
2259 浏览

multithreading - Akka 演员优先级

我有一个基于参与者的系统,它执行周期性的、cpu 密集型数据摄取以及为 RESTful 端点提供服务。我正在使用 Akka 演员来发信号/控制摄取过程的各个阶段,并使用 Spray(当然是基于 Akka 构建的)来服务于我的宁静端点。

我的问题是:当摄取开始时,它会消耗大部分 CPU,使 RESTful 端点饿死直到它完成。

降低摄取优先级的最佳方法是什么?目前,摄取和喷射模块共享相同的 ActorSystem,但如果这有助于解决问题,它们可以分开。

0 投票
2 回答
4082 浏览

scala - 我可以为特定管道请求设置超时和重试次数吗?

当使用 spray 的流水线来发出这样的 HTTP 请求时:

有没有办法为请求指定超时以及为该特定请求重试的次数?

我发现的所有文档都只是在配置中做的参考(即使那样我似乎也无法让它工作)。

谢谢