Jetty 的 SocketAddressResolver InstantiationError 的可能原因

Possible Reasons for InstantiationError in Jetty's SocketAddressResolver

我正在尝试使用图形数据库 Blazegraph 的远程实例,这需要调用 RemoteRepositoryManager 的构造函数。调用如下所示(serviceURL 是我的远程 Blazegraph 服务器的地址):

val repo = new RemoteRepositoryManager(serviceURL, false /* useLBS */ )

当我 运行 Scalatra-SBT 项目中的代码时,我收到以下错误,由 Jetty class SocketAddressResolver:

Exception in thread "main" java.lang.InstantiationError: org.eclipse.jetty.util.SocketAddressResolver
at org.eclipse.jetty.client.HttpClient.doStart(HttpClient.java:209)
at com.bigdata.rdf.sail.webapp.client.AutoCloseHttpClient.doStart(AutoCloseHttpClient.java:71)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at com.bigdata.rdf.sail.webapp.client.DefaultHttpClientFactory.newInstance(DefaultHttpClientFactory.java:194)
at com.bigdata.rdf.sail.webapp.client.RemoteRepositoryManager.<init>(RemoteRepositoryManager.java:439)
at com.bigdata.rdf.sail.webapp.client.RemoteRepositoryManager.<init>(RemoteRepositoryManager.java:358)
at com.example.app.BlazegraphRemoteModeConnection$.<init>(BlazegraphRemoteModeConnection.scala:31)
at com.example.app.BlazegraphRemoteModeConnection$.<clinit>(BlazegraphRemoteModeConnection.scala)
at com.example.app.BlazegraphRemoteModeConnection.main(BlazegraphRemoteModeConnection.scala)

我不确定是什么导致了这个结果;然而,一位同事能够在非 Scalatra SBT 项目中成功 运行 这段代码。我用来提供远程服务器地址的 URL 被证明是有效的,所以问题不存在。我正在寻找一些我可以采取的解决此问题的建议。

我遇到了完全相同的问题。我认为问题是 Blazegraph 支持旧版本的 Jetty。

用这个替换 Jetty 依赖项解决了问题。

  "org.eclipse.jetty" % "jetty-webapp" % "8.1.8.v20121106" % "container;compile"