当前位置: 首页 > 知识库问答 >
问题:

喷涂编组集合

子车凌龙
2023-03-14

我有一个简单的喷雾场景,但并不像我预期的那样有效。

我有一个spray服务器,它将工作分派给不同的模块,然后返回它们的合成响应。

由于我不想限制模块响应,我选择了模块的方法返回到ResponseMarshallable,因为我有需要返回纯字符串的模块。

模块签名可以是:

def moduleProcessing():ToResponseMarshallable=randomString()

我的“完整”块看起来像这样:

complete {   

    val response1 = moduleProcessing()
    val response2 = moduleProcessing()
    Seq(response1,response2) 
}

在前面的例子中,我希望得到:

[{"someRandomString"},{"anotherRandomString"}]

但是我得到了:

[{},{}]

当然,如果我返回单个响应或将moduleProcess返回类型的签名更改为任何Marshallable Type,它将按预期传播。

提前感谢您的帮助!

共有1个答案

暴乐邦
2023-03-14

我觉得很奇怪,你的模块处理方法直接返回一个ToResponseMarshallable[T]。喷雾方式是让此方法返回一个 T,并在您通过提供 T 来完成请求时具有一个在范围中的 Marshaller[T]。

最后,我不认为Marshaller.of[Seq[T]]是喷雾中的内置编组器。

这意味着您需要提供自己的Seq marshaller。这可以将 seq 中每个项目的实际编组委托给隐式 Marshaller[T] 并连接结果。许多内置的喷雾编组器需要这样的隐式马歇尔[T]值。或者,如果你想要一个简单的 Seq[T] 来字符串编组,请尝试如下操作:

implicit val CustomMarshaller = Marshaller.delegate[Seq[T], String](`text/html`)(_.mkString("{", ",", "}"))
 类似资料:
  • 我正在用Jetpack Compose创建一个布局,其中有一个列。我希望将此列中的项目居中:

  • 我用的是Kafka。请在下面找到测试程序。 我正在使用Storm 0.8.1。在Storm 0.8.2中存在多方案类。我会用那个。我只想知道早期版本是如何通过实例化String计划()类来工作的?我在哪里可以下载早期版本的Kafka喷口?但是我怀疑这是一个正确的选择,而不是在Storm 0.8.2上工作。???(困惑) 当我在暴风集群上运行代码(如下所示)时(即当我推我的拓扑时),我得到以下错误(

  • 问题内容: 我正在使用Java Swing编写游戏。我想在每次循环执行时绘制一下,并在之间稍加延迟以在屏幕上创建级联效果。我相信系统中的效率例程会将调用折叠为一个调用。无论如何,所有更改都在总延迟后立即发生。是否有某种方法可以强制系统立即重新绘制,然后在循环的每次迭代中延迟? 我的代码: 问题答案: 您可以用来强制立即重绘。 编辑:再次阅读您的问题后,对我来说,您可能正在事件分发线程上执行逻辑。这

  • 我使用三台机器和本指南在aws集群上设置了一个测试环境。 我在本地模式下测试了我的代码,并使用wirbelsturm创建了一个本地vagrant集群,这两种方法都能产生预期的结果。 当我现在向Web服务器提交代码时,我的喷口和所有的螺栓都是静默的。我的嘴读的是csv,我把它抄送给了灵气和我的主管。storm UI显示我的拓扑为活动的,并显示所有螺栓和我的喷口,但计数器不可见。主管没有已使用得员工.

  • 几天来,我一直试图成功地构建我正在进行的项目(使用Jetpack Compose),但当我更新gradle构建插件和其他一些依赖项时,我无法正确运行该项目。有一些gradle版本与dagger-hilt依赖项冲突,我不知道如何修复它。我正在使用Android Studio的金丝雀测试版。 这里还有我所有的gradle构建文件: Gradle构建模块应用程序: Gradle构建(项目层级): 错误:

  • 我想知道什么是喷气背包中的脚手架组成一个BottomAppBar示例任何人都可以帮我