2013-03-28 85 views
1

我是斯卡拉新手,我正在嘗試使用ScalaXB的示例。簡單ScalaXB示例導致發送NoSuchMethodError

我正在使用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> 

任何想法出了什麼問題?

回答

1

當你在Scala標準庫的東西上有java.lang.NoSuchMethodError,我猜測你在使用非2.10.1 Scala編譯器或庫的時候,在IntelliJ或者sbt的設置中。

編輯:每次派送,請參閱我的回答correct mvn version for dispatch.databinder.net。你不必自己構建它。

+0

顯然,從常青藤依賴項的調度二進制文件只爲scala 2.9.2構建。我得到了這個項目,不得不用scala 2.10.1來重建它。謝謝。 – 2013-03-28 15:44:52