Ily*_*iuk 2 eclipse-plugin jetty
我有一个eclipse插件,它使用带有ProxyServlet的jetty服务器.基本上,实现如下:
ServletHolder proxyServletHolder = new ServletHolder(new SubClassOfProxyServlet());
proxyServletHolder.setAsyncSupported(true);
ServletHandler proxyServletHandler = new ServletHandler();
proxyServletHandler.addServletWithMapping(proxyServletHolder, "/mapping/url");
Run Code Online (Sandbox Code Playgroud)
之后,我将代理处理程序添加到处理程序列表并将此列表设置为服务器:
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] {
. // Other Handlers
.
proxyServletHandler,
.
.
.
new DefaultHandler()
});
server.setHandler(handlers);
Run Code Online (Sandbox Code Playgroud)
一切都像对码头8的魅力一样,但在迁移到码头9后,我收到以下错误:
Caused by: java.lang.IllegalStateException: No server executor for proxy
at org.eclipse.jetty.proxy.ProxyServlet.createHttpClient(ProxyServlet.java:279)
at org.eclipse.jetty.proxy.ProxyServlet.init(ProxyServlet.java:123)
... 24 more
使用ProxyServer的机制是否已更改?我错过了什么吗?
您需要更新您的SubClassOfProxyServlet类以包括现在从Server代理传递到代理的各种配置,然后由内部使用HttpClient
特定错误意味着您没有正确传递Executor.
Executor特定部分有2个选项(在解决此问题后,您可能需要配置更多内容)
maxThreads设置为有效的整数值.ServletContext.setAttribute("org.eclipse.jetty.server.Executor", myExecutor)在应用程序部署/启动时将其设置在servlet上下文属性中.- 你也可以在你的SubClassOfProxyServlet.init(ServletConfig config)方法中做到这一点.