Jetty ProxyServlet 不重定向请求
Jetty ProxyServlet does not redirect the request
我想将请求重定向到另一台处理请求并执行业务逻辑的服务器。我尝试使用 ProxyServlet 但它不起作用。
这是我的主服务器实现,它在 localhost:8081
上获取所有 requests:runs
Server server = new Server(8081);
// 2. Creaing the WebAppContext for the created content
WebAppContext ctx = new WebAppContext();
ctx.setResourceBase("src/main/webapp");
ctx.setContextPath("/jetty-jsp-example");
ServletHolder jerseyServlet = ctx.addServlet(ProxyServlet.class,"/*");
jerseyServlet.setInitOrder(0);
jerseyServlet.setInitParameter("maxThreads", "1");
jerseyServlet.setInitParameter("proxyTo", "localhost:8080");
ctx.setAttribute("o:Prg.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",".*/[^/]*jstl.*\.jar$");
org.eclipse.jetty.webapp.Configuration.ClassList classlist = org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(server);
classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration", "org.eclipse.jetty.plus.webapp.EnvConfiguration", "org.eclipse.jetty.plus.webapp.PlusConfiguration");
classlist.addBefore("org.eclipse.jetty.webapp.JettyWebXmlConfiguration", "org.eclipse.jetty.annotations.AnnotationConfiguration");
server.setHandler(ctx);
server.start();
server.join();
我想将此请求转发到端口 8080 上的服务器 运行。我的目标服务 url 路径是:localhost:8080/jetty-jsp-example/sv/endpoint。
我已经导入码头代理如下
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-proxy</artifactId>
<version>9.3.8.v20160314</version>
此外,我读到我们的自定义代理 servlet 应该被要求扩展 proxyservlet class 并重写 rewriteURL() method.But 当我尝试它给我编译错误时。
请任何人告诉我如何解决这个问题。我使用码头 9.3
嘿,前几天我也在想如何让它工作。我必须使用具有以下初始化参数的子类型 BalancerServlet
:
// give your servlet a name
jerseyServlet.setName("proxy");
// parameter is 'balancerMember.NAME.proxyTo'
jerseyServlet.setInitParameter("balancerMember.proxy.proxyTo", "http://yourdownstreamserver.com/");
关于配置的文档有点稀疏;我最终不得不查看 source code。另请注意,Jetty 代理不支持通过 SSL 代理到下游服务。
我想将请求重定向到另一台处理请求并执行业务逻辑的服务器。我尝试使用 ProxyServlet 但它不起作用。
这是我的主服务器实现,它在 localhost:8081
上获取所有 requests:runs Server server = new Server(8081);
// 2. Creaing the WebAppContext for the created content
WebAppContext ctx = new WebAppContext();
ctx.setResourceBase("src/main/webapp");
ctx.setContextPath("/jetty-jsp-example");
ServletHolder jerseyServlet = ctx.addServlet(ProxyServlet.class,"/*");
jerseyServlet.setInitOrder(0);
jerseyServlet.setInitParameter("maxThreads", "1");
jerseyServlet.setInitParameter("proxyTo", "localhost:8080");
ctx.setAttribute("o:Prg.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",".*/[^/]*jstl.*\.jar$");
org.eclipse.jetty.webapp.Configuration.ClassList classlist = org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(server);
classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration", "org.eclipse.jetty.plus.webapp.EnvConfiguration", "org.eclipse.jetty.plus.webapp.PlusConfiguration");
classlist.addBefore("org.eclipse.jetty.webapp.JettyWebXmlConfiguration", "org.eclipse.jetty.annotations.AnnotationConfiguration");
server.setHandler(ctx);
server.start();
server.join();
我想将此请求转发到端口 8080 上的服务器 运行。我的目标服务 url 路径是:localhost:8080/jetty-jsp-example/sv/endpoint。
我已经导入码头代理如下
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-proxy</artifactId>
<version>9.3.8.v20160314</version>
此外,我读到我们的自定义代理 servlet 应该被要求扩展 proxyservlet class 并重写 rewriteURL() method.But 当我尝试它给我编译错误时。
请任何人告诉我如何解决这个问题。我使用码头 9.3
嘿,前几天我也在想如何让它工作。我必须使用具有以下初始化参数的子类型 BalancerServlet
:
// give your servlet a name
jerseyServlet.setName("proxy");
// parameter is 'balancerMember.NAME.proxyTo'
jerseyServlet.setInitParameter("balancerMember.proxy.proxyTo", "http://yourdownstreamserver.com/");
关于配置的文档有点稀疏;我最终不得不查看 source code。另请注意,Jetty 代理不支持通过 SSL 代理到下游服务。