问题标签 [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.
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 主题,但没有找到任何有用的信息。
sbt - sbt 更新而不添加 io.spray 工件
我有一个运行良好的 sbt 项目,但在重新加载后停止加载工件。更新正确地解决了依赖关系,但由于某些原因,现在不包括项目中的库,如以下显示更新所示(请注意,许多 Spray-io 模块没有工件)。任何想法如何解决这个问题?
scala - 如何解构 Spray API HTTPResponse?
我正在使用 Spray API(spray-client)来访问内部 Solr URL,我希望能够将响应解析为 Scala 案例类。
如果我只是期望和 HTTPResponse,我会得到一个值,但是当我尝试将它编组到我的案例类中时,它会失败(我不能产生除 null() 之外的消息,因为我正在使用匹配和显然没有得到正确的测试用例。)
我认为我的一些问题是它以的形式返回数据text/plain
而不是application/json
. 当我期望 HttpResponse 而不是我的案例类时,
我得到:
但是当我改变它以期望我的案例类时,我无法匹配。那么,如何将它返回的数据编组到 Scala 案例类中呢?这是我尝试过的:
f onComplete ...
这让我在结构中无法匹配。问题可能是我的案例类与返回的内容不匹配,如果是这样,您有什么建议可以更好地解决它?
我一直在研究文档,它们要么不完整,要么有点过时,而且我是这个游戏的新手,所以这也无济于事。
scala - 对于 url 编码的 POST 的参数,您将如何实现 String 到 json 对象解组器?
对于 url 编码的 POST 的参数,您将如何实现 String 到 json 对象解组器?我正在使用 1.2 版。
这就是我想要的。Foursquare 将 url 编码的 POST 推送到我的服务。我的路线看起来像这样
我有 json 解析器,FsqCheckin
它的定义如下
所以这一切都很好,但它只有在参数被表单编码时才有效。否则喷雾说
所以我想我会写 unmarshaller。我写了这个
但是如果我把它带到我的路线范围内,我会得到以下编译错误
如果范围内没有 json 解析器,这与我遇到的错误相同FsqCheckin
。
我该如何处理这个问题?
scala - 如何编写泛型隐式转换?
你能帮我写通用隐式转换吗?
我正在使用 Scala 2.10.2 和 Spray 1.2。
这是我所拥有的
如您所见,HttpEntity->ObjectId 的反序列化器仅使用 String->ObjectId 反序列化器。我必须为我在 HTTP 路由特征中使用的每个类复制粘贴这样的代码。
所以我想如果我可以编写通用的 HttpEntity->T ,它将Deserializer[String, T]
在范围内使用。
我试过这个:
可悲的是它不起作用。并说:
你能建议怎么做吗?
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中获取它。
unit-testing - 如果我的特质使用自我类型限制,我该如何创建模拟?
我正在尝试使用蛋糕图案和模拟。在阅读了一堆包含大量时髦术语的博客文章后,我无法让它发挥作用:(
我正在使用 Spray 并拥有以下 http 服务
AppProvider
在哪里
对于真正的服务器,我像这样组合它
在哪里RealApiManager
延伸AppProvider
。
也ApiManager
必须混入DbProvider
其中看起来像这样
在我的单元测试中,我只想测试 http 部分并进行了模拟ApiManager
,它只是检查客户端传递的对象是否正确。
我不能做到这一点
因为ApiManager
必须与DbProvider
. 我怎样才能解决这个问题 ?我现在看到两个选项:
- 切换到可以使用带参数的构造函数实例化类的模拟库(例如 Mockito)
- 添加
init(db : DBManager)
方法并拥有var
其中ApiManager
丑陋的
scala - Scala 参数模式(喷雾路由示例)
抱歉标题含糊……不知道如何描述这一点。
一段时间以来,我已经在 Scala 中看到/使用了某种代码结构,但我不知道它是如何工作的。它看起来像这样(来自喷雾路由的示例):
在此示例中,路径中的分段分别绑定到关联块内的 a 和 b。我知道如何使用这种模式,但它是如何工作的?为什么它没有将某些东西绑定到“foo”?
我对喷雾如何在这里达到我的目的不太感兴趣,但是这是 Scala 的什么工具,我将如何编写自己的工具?
multithreading - Akka 演员优先级
我有一个基于参与者的系统,它执行周期性的、cpu 密集型数据摄取以及为 RESTful 端点提供服务。我正在使用 Akka 演员来发信号/控制摄取过程的各个阶段,并使用 Spray(当然是基于 Akka 构建的)来服务于我的宁静端点。
我的问题是:当摄取开始时,它会消耗大部分 CPU,使 RESTful 端点饿死直到它完成。
降低摄取优先级的最佳方法是什么?目前,摄取和喷射模块共享相同的 ActorSystem,但如果这有助于解决问题,它们可以分开。
scala - 我可以为特定管道请求设置超时和重试次数吗?
当使用 spray 的流水线来发出这样的 HTTP 请求时:
有没有办法为请求指定超时以及为该特定请求重试的次数?
我发现的所有文档都只是在配置中做的参考(即使那样我似乎也无法让它工作)。
谢谢