Монитор локальной сети хоста и запрос httpservlet

У меня есть два сервера Tomcat на моей машине, которые общаются друг с другом.

1) Может ли кто-нибудь порекомендовать хороший (бесплатный) сетевой анализатор, чтобы я мог отслеживать запросы / ответы, отправляемые между ними?

2) Как я могу проверить запрос в коде Java? чтобы увидеть, из чего состоит заголовок и тело и их структуры?

Большое спасибо, по какой-то причине № 2 не так прямолинеен, как я думал.

мне

4 ответа

1) Wireshark - это "сетевой" анализатор сети. Но если вы работаете в Windows и хотите быстрый и простой способ видеть http-трафик, взгляните на Fiddler. Это плагин IE, но он может отслеживать весь http-трафик с вашего компьютера.

2) В сервлете или, еще лучше, в фильтре сервлетов добавьте следующее.

Enumeration headerNames = request.getHeaderNames();
    while(headerNames.hasMoreElements()) {
      String headerName = (String)headerNames.nextElement();
      out.println("<TR><TD>" + headerName);
      out.println("    <TD>" + request.getHeader(headerName));
    }

Мне нравится Wireshark.

Если вы работаете в Windows, вы не можете напрямую отслеживать петлю 127.0.0.1. Вам нужно будет установить альтернативный петлевой адаптер (те же функции на другом адресе). Это подробно описано в документации по Wireshark:

http://wiki.wireshark.org/CaptureSetup/Loopback

Я не уверен, что вы подразумеваете под своим вторым вопросом, можете ли вы рассказать подробнее?

Если все ваши запросы основаны на HTTP, то Wireshark сможет отображать заголовки и данные тела, но это не входит в контекст кода Java.

Я просто использовал

http://socketsniff.nirsoft-freeware.qarchive.org/_download2.html

и это сработало безупречно для того, что я хотел.

Бесстыдно скопировал с этого вопроса:

Sniffer для локального хоста (ОС Windows)

Как насчет настройки серверов Tomcat для удаленной отладки под номером 2? Добавить точку останова, чтобы вы могли проверить объекты? http://wiki.apache.org/tomcat/FAQ/Developing

Другие вопросы по тегам