gpt4 book ai didi

eclipse-plugin - 从 jetty 8 迁移到 jetty 9 后 ProxyServlet 停止工作

转载 作者:行者123 更新时间:2023-12-04 04:32:31 28 4
gpt4 key购买 nike

我有一个 eclipse 插件,它使用带有 ProxyServlet 的 jetty 服务器。基本上,实现如下:

    ServletHolder proxyServletHolder = new ServletHolder(new SubClassOfProxyServlet()); 
proxyServletHolder.setAsyncSupported(true);
ServletHandler proxyServletHandler = new ServletHandler();
proxyServletHandler.addServletWithMapping(proxyServletHolder, "/mapping/url");

之后我将代理处理程序添加到处理程序列表并将此列表设置到服务器:

    HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] {
. // Other Handlers
.
proxyServletHandler,
.
.
.
new DefaultHandler()
});
server.setHandler(handlers);

jetty 8 上一切正常,但在迁移到 jetty 9 后,我收到以下错误:

Caused by: java.lang.IllegalStateException: 没有用于代理的服务器执行器
在 org.eclipse.jetty.proxy.ProxyServlet.createHttpClient(ProxyServlet.java:279)
在 org.eclipse.jetty.proxy.ProxyServlet.init(ProxyServlet.java:123)
... 24 个

ProxyServer 的工作机制有变化吗?我错过了什么吗?

最佳答案

您需要更新您的 SubClassOfProxyServlet 类以包含现在从 Server 传递到 Proxy 的各种配置,这些配置随后由内部 HttpClient

特定错误意味着您没有正确传递执行器。

对于 Executor 特定部分,您有 2 个选择(在解决此问题后,您可能需要配置更多内容)

  1. 将初始参数 maxThreads 设置为有效的整数值。
  2. 或创建一个执行器,并在应用程序部署/启动时在 ServletContext.setAttribute("org.eclipse.jetty.server.Executor", myExecutor) 的 servlet 上下文属性中设置它。 - 您也可以在 SubClassOfProxyServlet.init(ServletConfig config) 方法中执行此操作。

关于eclipse-plugin - 从 jetty 8 迁移到 jetty 9 后 ProxyServlet 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27624873/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com