2013-11-12 7 views
0

У меня есть i прокси, каждый с разными ip host_i.Как использовать встроенный причал для имитации прокси-сервера?

Я хочу сделать запросы к

<host_i>:4444/content пойти

localhost:9999/content?proxy=<host_i>

Как мне это сделать? Вот что я до сих пор пытался использовать встроенный сервер причала (версия: 8.1.10.v20130312), но он не работает, и я не могу понять это. Я получил этот пример из: http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AsyncProxyServer.java?h=jetty-8

proxyServer = new Server(); 
    Connector connector = new SelectChannelConnector(); 
    connector.setPort(4444); 
    proxyServer.setConnectors(new Connector[]{connector}); 

    ServletHandler handler = new ServletHandler(); 
    proxyServer.setHandler(handler); 

    ServletHolder proxy = handler.addServletWithMapping("org.eclipse.jetty.servlets.ProxyServlet", "/"); 
    proxy.setAsyncSupported(true); 

    proxyServer.start(); 

Это мой код, используя simpleframework, который обрабатывает запросы localhost:9999:

websiteContainer = new HttpServer(); 
    websiteServer = new ContainerServer(websiteContainer); 
    websiteConnection = new SocketConnection(websiteServer); 
    final SocketAddress websiteAddress = new InetSocketAddress(9999); 
    websiteConnection.connect(websiteAddress); 

    public class HttpServer implements Container { 
    @Override 
    public void handle(final Request request, final Response response) { 
      // do some stuff here, I have a breakpoint here to test if a request to a proxy made it here 
    } 

ответ

0
@Override 
public void handle(final Request request, final Response response) { 
// building redirect url localhost:9999/content?proxy=<host_i> 

redirectUrl= "localhost:9999/" + httpRequest.getContextPath() + "? proxy =" + httpRequest.getLocalAddr();    
// do remaing stuff here 
} 

Я надеюсь, что это решит вашу проблему как httpRequest.getContextPath() дает IP, где ваше приложение запущено, и httpRequest.getContextPath() дает вам контактивный путь, который попадает

Смежные вопросы