码头升级 8 到 9

Jetty upgrade 8 to 9

当我尝试从 Jetty 8.1.12 迁移到 Jetty 9.4.18 时,由于以下问题出现错误。

  1. 我们正在使用 org.eclipse.jetty.server.AsyncContinuation。 Jetty 9.4.18
  2. 中不存在
  3. 我们正在使用 AbstractHttpConnection。特别是 AbstractHttpConnection.getCurrentConnection() 方法。 Jetty 9.4.18 中不存在。
  4. 我们正在使用 Jetty 9.4.18 中不存在的 org.eclipse.jetty.security.MappedLoginService。
  5. 我们正在使用 connector.getConnection() 方法。在 Jetty 9.4.18.
  6. 的连接器 class 中不存在

我在 Jetty 升级页面中没有找到关于这些问题的任何文档。

欢迎使用 Whosebug!

在一个问题上问多个不相关的问题不是一个好主意。

1) we are using org.eclipse.jetty.server.AsyncContinuation. Which is not present in Jetty 9.4.18

AsyncContinuation 是 Jetty 7 及更早版本的概念。

它保留在 Jetty 8 中,作为向 Servlet 3.0 中引入的关于异步的 Servlet 规范特定行为的过渡(Jetty 8.x 支持)。

改为使用 javax.servlet.AsyncContext。 (您会发现许多方法名称相似,因此转换应该不会有那么大问题)。

2) We are using AbstractHttpConnection. specifically AbstractHttpConnection.getCurrentConnection() method. Which is not present in Jetty 9.4.18

如果您正在访问原始连接,您将面临无穷无尽的问题。 Connection 对象不再代表物理连接,它通常代表虚拟连接,并且可以在物理连接的生命周期内发生变化或被换出。你没有说明为什么需要这个,在什么样的情况和环境下需要这个。

在 Whosebug 上创建一个新问题,解释您为什么需要这个,以及您试图解决什么目标。 (不是您之前使用的技术、目标、最终结果)

3) We are using org.eclipse.jetty.security.MappedLoginService which is not present in Jetty 9.4.18

整个安全层都已重构,如果没有详细说明您的尝试,就不可能将您指向正确的位置。

也为这个问题在 Whosebug 上创建(另一个)问题。解释您要解决的问题,显示一些代码。在详细说明您的问题时,首先关注目标,然后才是您尝试过的技术。

4) we are using connector.getConnection() method. which is not present in Connector class in Jetty 9.4.18.

这似乎与问题 3 重叠。 但是这种问题没有什么可以解决的。