Scala 未来应用程序在完成之前终止

2023-12-12

只是试图让我的第一个 future 使用并运行,并进行类似于 Akka in Action MEAP 书中概述的示例的测试。我想调用一个网络服务并在将来返回结果。我正在使用 scalaxb 访问 Web 服务。我已经概述了下面的代码,但是当我运行它时,应用程序将终止而不等待服务的响应。也许有人可以告诉我我错过了什么?

import scala.util._
import control.NonFatal
import scala.concurrent._
import ExecutionContext.Implicits.global

object Test {


    val service = (new MyServiceBindings with scalaxb.Soap11Clients with scalaxb.DispatchHttpClients {}).service

    def test = {

        val f = future {

            service.someCall() match {
                case Right(resp) => resp
                case Left(fault) => throw new Exception("Fault: " + fault)}
            }
        }

        f.onComplete {
            case Success(resp) => println("Resp: " + resp)
            case Failure(NonFatal(e)) => println("Fail: " + e)
        }
    }

    def main(args: Array[String]): Unit = {
        test
    }
}

它终止是因为测试内执行的主线程已完成。 Dispatch 库内部使用的线程不会阻止程序退出。

您需要等待未来,因为这是您的测试应用程序正在做的唯一事情。将其放在 onComplete 语句之后。

import scala.concurrent.duration._ Await.ready(f, 10.seconds)

现在请记住,这通常是不好的做法。您在这里需要它,因为您的测试应用程序不执行任何其他操作,但在真正的应用程序中,您不希望在每次 future 调用后阻塞,因为这会否定使用 future 的意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala 未来应用程序在完成之前终止 的相关文章

  • 无法证明与路径相关类型的等价性

    为什么最后一个summon编译失败 我该怎么做才能让它编译 import java time LocalDateTime LocalTime trait Circular T type Parent given localTimeCircu
  • Scala 正则表达式替换为匿名函数

    在 Ruby 中 我可以通过以下方式替换字符串中的字符 a one1two2three a gsub d e e to i 1 gt one2two3three 从第二行开始评估块的结果将替换模式中匹配的内容 我们可以在 Scala 中做类
  • Play 框架:异步与同步性能

    我有以下代码 def sync Action val t0 System nanoTime Thread sleep 100 val t1 System nanoTime Ok Elapsed time t1 t0 1000000 0 ms
  • 如何将 csv 文件读取为键值对的映射

    我的 csv 文件中有数据 例如 value key A Name B Name C Name 24 Age 25 Age 20 Age M Gender F Gender 我想解析它以生成以下地图 Map Name gt List A B
  • Scala:var List 与 val MutableList

    在 Odersky 等人的 Scala 书中 他们说使用列表 我还没有从头到尾读过这本书 但所有的例子似乎都使用了 val List 据我了解 还鼓励人们使用 vals 而不是 vars 但在大多数应用程序中 使用 var List 或 v
  • 由于 UTFDataFormatException 导致 Spark 中的任务无法序列化:编码字符串太长

    我在 Yarn 上运行 Spark 应用程序时遇到一些问题 我有非常广泛的集成测试 运行时没有任何问题 但是当我在 YARN 上运行应用程序时 它将抛出以下错误 17 01 06 11 22 23 ERROR yarn Applicatio
  • Scala 中的超时未来

    假设我有一个函数 它调用一个阻塞可中断的手术 我想在超时的情况下异步运行它 也就是说 我想在超时到期时中断该功能 所以我正在尝试做这样的事情 import scala util Try import scala concurrent Fut
  • 如何编写 sbt 插件来通过代理启动应用程序

    我想在开源之前为我的项目创建一个 sbt 插件 该项目在应用程序运行开始时附加一个 Java 代理 以对其进行各种类型的分析 代理写出文本文件以供以后处理 我希望能够编写一个 sbt 插件 有一个替代方案run called runWith
  • 在 Scala 中是否可以指定匿名函数的返回类型?

    我知道您可以创建一个匿名函数 并让编译器推断其返回类型 val x gt System currentTimeMillis 只是为了静态类型的缘故 是否也可以指定其返回类型 我认为这会让事情变得更加清晰 val x gt System cu
  • 如何从 lift webapp 读取文件

    我想在我的 lift 应用程序中读取 xml 文件 val data XML load new java io InputStreamReader new java io FileInputStream 文件名 编码 然而 我得到java
  • IntelliJ IDEA 13 给出有关不兼容类型的无效错误(Play 中的 Java-Scala-InterOp)

    我刚刚从 IDEA 12 升级到 13 社区版 从那时起 我在 IDEA 中收到关于我的游戏项目的类型不兼容的错误 Option
  • 如何使用 `ProjectRef` 来引用 sbt 1.x 中的本地项目?

    其他答案中有很多含糊不清的内容 或者涉及到更旧版本的 sbt 即 0 12 x 但似乎没有人真正回答这个问题 鉴于我有一个文件夹 并且我已经运行 sbt new scala scala seed g8 name Scala Seed Pro
  • sbt:编译测试时设置特定的 scalacOptions 选项

    通常我使用这组选项来编译 Scala 代码 scalacOptions Seq deprecation encoding UTF 8 feature unchecked language higherKinds language impli
  • Scala - lambda 参数可以匹配元组吗?

    所以说我有一些清单 比如 val l List 1 blue 5 red 2 green 然后我想过滤掉其中一个 我可以做类似的事情 val m l filter item gt val n s item unpack the tuple
  • 如何通过 Scala REPL 使用第三方库?

    我已经下载了Algebird我想尝试一些事情Scala 解释器使用这个库 我该如何实现这一目标 当然 您可以使用 scala cp 无论如何并手动管理您的依赖项 但这变得非常乏味 尤其是当您有多个依赖项时 更灵活的方法是使用sbt http
  • Spark-shell 使用不同版本的 Scala。使用 homebrew 安装 scala 和 apache-spark

    我使用 homebrew 安装了 scala 和 apache spark 它安装了 scala 2 12 4 和 apache spark 2 2 0 但是 如果您结帐spark shell version它使用不同的 scala 版本
  • 内存泄漏在哪里?

    我使用 InetAddress 来解析 IP 地址 但现在如果 IP 不可用 则需要存储主机名 所以我介绍了一个班级Host case class Host name String ip InetAddress import Host ad
  • Scala:需要类类型,但找到了 T

    我发现了与此特定问题类似的问题 但是该问题是由于有人试图直接实例化 T 造成的 在这里 我试图创建一个特征 它是一个通用接口来扩展类并将它们自动存储在数据库中 例如 Riak 使用classOf T 使用 Scala 2 10 这是我的代码
  • Scala 中缺少多重集吗?

    我正在尝试 Scala 中的 Facebook Hacker Cup 2013 资格赛问题 对于第三个问题 我觉得需要一个有序的 Multiset 但在 scala 的 2 10 集合中找不到一个 scala 的集合中是否缺少此数据结构 会
  • Scala REPL / SBT Console 是否有配置文件?

    我一直在尝试找到某种点文件来放入 Scala REPL 设置和自定义函数 我特别有兴趣传递它的标志 例如 Dscala color 启用语法突出显示 以及覆盖设置 如结果字符串截断 scala gt power scala gt vals

随机推荐

  • 使用进程将数据发送到记事本

    我想将列表框中的每个项目发送到记事本 但我的逻辑有点打败我 private void send Click object sender EventArgs e var notepad Process GetProcessesByName N
  • 为什么 random.shuffle 返回 None ?

    Why is random shuffle返回None在Python中 gt gt gt x foo bar black sheep gt gt gt from random import shuffle gt gt gt print sh
  • 可以用SQL在数据库中进行二分查找吗?

    好的 我正在使用 C 编程语言访问一个简单的数据库 在 Microsoft SQL Server 上 目前 我正在使用 DataReader 对象来访问数据库 所以这是我的问题 是否可以对特定的数据进行二分搜索 在 C 中 以便我可以加快搜
  • Symfony2 - 如何从我的网址中删除“web/app_dev.php/”?

    当我希望我的 symfony 网站上线时 如何从我的网址中删除 web app dev php 这是开发时的默认url http localhost my symfony 2 web app dev php hello World 所以当我
  • NSMutableArray indexOfObject 返回一个非常大的数字

    我有一个 NSMutableArray 返回一个非常大的索引 po masterArray count lt returns 2 NSUInteger theIndex masterArray indexOfObject validateE
  • 在编译时选择随机数分布

    我正在使用编写测试TYPED TEST谷歌测试的功能 它允许我将测试推广到多种类型 我正在测试类型的类模板int and double 在测试中 我需要生成随机数 为此 我尝试使用std uniform int distribution
  • 数据描述符和非数据描述符的正确定义是哪一个?

    它们都是来自文档的Python 第一个 says 如果一个对象定义了两者 get and set 它被认为是一个数据描述符 仅定义的描述符 get 称为非数据描述符 它们通常用于方法 但也可能有其他用途 第二个 says 如果描述符定义 s
  • @aspnet_Membership_CreateUser 的密码

    应用 书呆子晚餐 该 SP 用于为新创建的用户插入密码 我试图找出应用程序代码中 Password 的来源 因为它是提供给该 SP 的 我在应用程序级别上查找它 但在应用程序级别上找不到它 有谁知道应用程序中哪里使用SP来传递 Passwo
  • WaitForSingleObject 不等待进程结束[重复]

    这个问题在这里已经有答案了 我想等待进程执行 calc exe 结束 但它不起作用 我的程序很快完成 而我的进程 calc exe 继续运行 我没有停止它 并且 WaitForSingleObject 立即返回 WAIT OBJECT 0
  • 比较Excel中的两列,插入空白行移动关联数据

    我在Excel中有大量数据需要按列进行匹配 具体来说 目前的数据如下 Column 1 Column 2 Column 3 1 1 aaaa 2 3 bbbb 3 4 cccc 4 理想情况下 我希望数据看起来像 Column 1 Colu
  • 如何在 Xamarin.Forms 中登录 Facebook

    我想制作一个 Xamarin Forms 项目 针对 iOS Android 和 Windows Phone 我的应用程序需要使用 Facebook 对用户进行身份验证 我应该独立实现每个平台的登录 还是使用手动流程 https devel
  • 在文本文件中打印 strace 命令的输出

    我需要将以下命令的结果写入文本文件 但该命令不起作用并且在使用时cat output txt什么也不给我看 请帮我解决这个问题吗 strace r y e read Program l o output txt thanks 为了将来的参考
  • 如何使用 C# 在 .Net 中的类型化对象列表中选择对象属性的所有值

    呃 我该如何解释这个 可能是一个简单的问题 但我的头脑很混乱 假设我有这样的课程 public class NestedObject public string NestedName get set public int NestedInt
  • 如何通过 C++ 检索已提交的内存

    我在这里找到了这个问题的几个答案 但没有一个能回答我的问题 我正在尝试追踪非托管 C 应用程序中的一些内存泄漏 通过阅读以下内容 内存 提交大小 似乎是监视内存使用情况时使用的最佳指标 http forum sysinternals com
  • 闭包语法

    function makeIncreaseByFunction increaseByAmount return function numberToIncrease return numberToIncrease increaseByAmou
  • 如何将响应数据中的特定数据保存到 csv 文件

    在我的 Web 服务测试计划中 我发送 SOAP 请求来创建用户 并在响应数据中发回用户名和唯一 ID 我想将该用户名和 uniqueid 保存到 CSV 文件中 谁能让我知道我怎样才能实现这一目标 您可以使用 Regex 后处理器提取数据
  • ClosedXML Excel 按多列中的值过滤行

    我有一个 Excel 文件 其中包含数千行和最多 BP 的列 我需要按 C 列和 BP 列中的特定值过滤所有这些行 我按照下面的代码测试了 ClosedXML 中的过滤器功能 当我将过滤器应用于一列时 一切正常 并且数据保存在新文件中 当我
  • 在同一测试中重用 pytest 夹具

    下面是使用的测试代码示例user用于设置测试的夹具 pytest fixture def user Setup db connection yield User email protected Close db connection def
  • 在子类的回调方法中调用父类的方法

    我有两个类 B 类扩展了 A 类 在 B 类中 我正在执行一些画布操作 因此需要调用回调来加载图像 在回调中我想调用父类的相同方法 但是 如果我将这行代码放入回调中 则会出现语法错误 Uncaught SyntaxError super 关
  • Scala 未来应用程序在完成之前终止

    只是试图让我的第一个 future 使用并运行 并进行类似于 Akka in Action MEAP 书中概述的示例的测试 我想调用一个网络服务并在将来返回结果 我正在使用 scalaxb 访问 Web 服务 我已经概述了下面的代码 但是当