【问题标题】:Simple ScalaXB example causes NoSuchMethodError in Dispatch简单的 ScalaXB 示例在 Dispatch 中导致 NoSuchMethodError
【发布时间】:2013-03-28 07:28:58
【问题描述】:

我是 Scala 新手,我正在尝试使用 ScalaXB 的示例。

我正在使用 IntelliJ IDEA 和最新的 Scala 版本 2.10.1。

ScalaXB 使用Dispatch,所以我添加了它(版本 0.9.5)作为项目的依赖项。我还必须添加依赖项 slf4j-nop:1.6.2。所以,事后一切都编译了,但一直出现异常:

Exception in thread "main" java.lang.NoSuchMethodError: scala.util.control.Exception$Catch.either(Lscala/Function0;)Lscala/Either;
at dispatch.Promise$class.result(promise.scala:64)
at dispatch.ListenableFuturePromise.result(promise.scala:223)
at dispatch.Promise$class.apply(promise.scala:75)
at dispatch.ListenableFuturePromise.apply(promise.scala:223)
at scalaxb.DispatchHttpClients$DispatchHttpClient$class.request(httpclients_dispatch.scala:12)
at scalaxb.DispatchHttpClients$$anon$1.request(httpclients_dispatch.scala:4)
at scalaxb.SoapClients$SoapClient$class.soapRequest(soap12.scala:32)
at scalaxb.SoapClients$$anon$1.soapRequest(soap12.scala:14)
at scalaxb.SoapClients$SoapClient$class.requestResponse(soap12.scala:51)
at scalaxb.SoapClients$$anon$1.requestResponse(soap12.scala:14)
at eu.getintheloop.sample.XMLProtocol$WeatherSoap12Bindings$WeatherSoap12Binding$class.getWeather(xmlprotocol.scala:53)
at eu.getintheloop.sample.XMLProtocol$WeatherSoap12Bindings$$anon$3.getWeather(xmlprotocol.scala:48)
at eu.getintheloop.sample.main$.main(main.scala:20)
at eu.getintheloop.sample.main.main(main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

代码行是:

protected lazy val result = allCatch.either { claim }

这看起来很奇怪,因为“声明”似乎是一个非常好的 java.lang.String 对象:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetWeatherResponse xmlns="http://litwinconsulting.com/webservices/">
<GetWeatherResult>Sunny</GetWeatherResult>
</GetWeatherResponse>
</soap:Body>
</soap:Envelope>

任何想法出了什么问题?

【问题讨论】:

    标签: scala soap wsdl scala-dispatch scalaxb


    【解决方案1】:

    当你在 Scala 标准库的东西上有 java.lang.NoSuchMethodError 时,我的猜测是,在 IntelliJ 或 sbt 设置的某个地方,你正在使用非 2.10.1 的 Scala 编译器或库。

    编辑:每次调度,请查看我对correct mvn version for dispatch.databinder.net 的回答。您不必自己构建它。

    【讨论】:

    • 显然,来自 ivy 依赖项的调度二进制文件仅适用于 scala 2.9.2。我得到了这个项目,不得不用 scala 2.10.1 重建它。谢谢。
    猜你喜欢
    • 2019-03-28
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2016-10-20
    • 1970-01-01
    • 2017-11-04
    相关资源
    最近更新 更多