【问题标题】:javax ServletInputStream.isFinished() - abstractMethodErrorjavax ServletInputStream.isFinished() - abstractMethodError
【发布时间】:2016-11-09 21:20:27
【问题描述】:

尝试在 jetty 8 中托管 solr 5.0。This line in solr codebaseisFinished() 方法)抛出了 NoSuchMethodException,因为我使用的是 servlet API 3.0。

当我升级到 javax-servlet-api 3.1 时,错误被替换为 AbstractMethodException。问题似乎是isFinished()确实是一个抽象方法,如shown here

javax ServletRequest 类确实将(抽象)ServletInputStream 的实例返回为shown here - 至少在我的情况下,码头ServletRequest.getInputStream() 中的InputStream 似乎返回ServletInputStreamisFinished() 未实现,并且因此错误。

有什么解决办法吗?我一定在这里遗漏了一些东西,因为如果 solr codebase 没有预期到正确实例化的 ServletInputStream,我认为它不会调用 HttpServletRequest.getInputStream().isFinished()

【问题讨论】:

    标签: solr lucene jetty servlet-3.1


    【解决方案1】:

    注意:Jetty 8 is EOL (End of Life)

    无法在 Jetty 8 中托管 Solr 5(或任何需要 Servlet 3.1 的东西)。

    第一个支持 Servlet 3.1 的 Jetty 版本是 Jetty 9.1。

    【讨论】:

    • 好的,谢谢。这就是我需要知道的。如果我使用的是 servlet 3.1,那么 Jetty 9 似乎是必须的
    • 为什么在技术上是正确的,答案并没有明确说明新接口和旧实现版本之间存在不匹配(参见这个答案stackoverflow.com/questions/17969365/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 2020-03-02
    • 2016-02-16
    相关资源
    最近更新 更多