Как я могу нюхать и анализировать трафик Java RMI? В wirehark есть только очень частичное решение. Мне нужно точно знать, какие методы вызывают и какие аргументы передают, обнюхивая TCP-соединение.Java RMI: Требуется Sniffer
ответ
Вам нужно «обнюхать» его или вы можете развернуть собственную фабрику сокетов на клиенте или на сервере?
В прошлом я создал обычную фабрику сокетов сервера RMI, которая создала «тройник» в потоке, считываемом службой RMI. Поскольку среда выполнения RMI обычно читает один из потоков, мой код также получил копию JRMP для синтаксического анализа. В моем случае я регистрировал удаленные вызовы, включая их параметры в сериализованной форме, чтобы я мог «переиграть» их позже для тестирования нагрузки. Для этого недостаточно включить параметры ведения журнала RMI.
Одна из проблем заключается в том, что документация JRMP является плохой, а в некоторых случаях и неточной. Другим является то, что много необходимого кода не является частью основного API Java. Это было сложно. Я думал, что понял RMI задолго до того, как начал, но после этого небольшого проекта я был удивлен, как много мне пришлось учиться.
Аналогичный подход может быть применен к данным приложений, захваченным Wireshark, но я никогда не писал анализатор для Wireshark, и я не уверен, насколько он сложный.
Ethereal может помочь, но это довольно низкий уровень.
Вы можете установить java properties, чтобы сделать rmi более подробным.
Возможно, вам нужен этот параметр:
sun.rmi.client.logCalls (1.4 и более поздних версий)
Если значение этого свойства является истинным, sun.rmi.client.call регистратор будет установлен на уровень Level.FINER. Удаленные вызовы регистрируются на уровне Level.FINER, а исключения из удаленных вызовов регистрируются на уровне Level.FINE.
Я не знаю инструмента, который может нюхать и расшифровывать трафик RMI с провода. Если никто другой не делает этого, менее оптимальным решением может стать инструмент для ваших заглушек/скелетов (возможно, сгенерированный автоматически, если вы используете Java 5 или новее) или части инфраструктуры RMI с кодом для вывода сообщений журнала.
Чтобы достичь этого, вы можете использовать AOP или некоторый инструмент манипулирования байтовым кодом. Я успешно использовал JavaAssist для выполнения подобных задач. Он очень дружелюбен к инструменту такого характера.
- 1. Java Packet Sniffer
- 2. Репликация Java RMI
- 3. java RMI threading system
- 4. Java RMI без SecurityManager
- 5. Что такое Java RMI?
- 6. Тайм-аут Java RMI
- 7. Программа чата RMI, требуется красная ошибка «error»
- 8. Java RMI - Передача объектов
- 9. Java RMI external jar
- 10. Java RMI и NoClassDefFoundError
- 11. Запуск Java RMI
- 12. Java ArrayList/RMI
- 13. RMI + java reflection
- 14. Сериализация Java с RMI
- 15. Java RMI - удаленное развертывание
- 16. Java RMI-сервер Probleme
- 17. RMI Calculator Issue (JAVA)
- 18. Трассировка Java RMI
- 19. tictactoe java rmi connection
- 20. Выключение сервера Java RMI
- 21. Java: Розетки или RMI?
- 22. ClassNotFoundException в RMI Java
- 23. Реализация Java RMI
- 24. Асинхронный Java RMI
- 25. Ошибка исключения Java RMI
- 26. Неизвестный хозяин RMI java
- 27. java rmi exceptions
- 28. Остановки RMI сервер (Java)
- 29. Java RMI Сбой подключения
- 30. Java: RMI вопрос
Это проводаhark. Это не слишком помогает. Он только разбирает несколько заголовков – GabiMe
Это новости для меня. Самое приятное, что на SO вы можете чему-то научиться, даже отвечая на вопрос. –