在我的SBT构建文件中,我有以下条目:
libraryDependencies += "org.apache.httpcomponents" % "httpcore" % "4.4.4"
libraryDependencies += "org.apache.httpcomponents" % "httpclient" % "4.5.2"
在我的代码中,我使用:
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.HttpClientBuilder
val httpClient = HttpClientBuilder.create().build();
val httpGet = new HttpGet(url)
当我在我的机器上运行它时,它可以工作。但是当我将jar文件(sbt程序集)部署到另一台机器时,我得到了:
java.lang.NoClassDefFoundError: org/apache/http/impl/client/HttpClientBuilder
解压缩jar文件时,确实没有HttpClientBuilder类。
答案 0 :(得分:0)
答案 1 :(得分:0)
在我的班级深处似乎提到了一种被剥夺的方法,由于某些原因,它没有找到进入胖罐的方法。
改变
httpClient.getConnectionManager().shutdown()
到
httpClient.close();
解决了这个问题。
它与sbt无关,而是与java lib本身有关。