Мои проблемы: есть один сервер RHEL по умолчанию с двумя настроенными сетевыми картами:
- eth0 с IP 10.100.0.1
- eth1 с IP 10.100.100.1
Кроме того, на Red Hat установлен jboss-6.0.0.20101110-CR1, а на этом JBoss развернут EAR, который представляет собой простой сервлет, прослушивающий входящие данные, и после некоторой обработки приложение пересылает обработанные данные в другой веб-сервис на другом хост (например, 10.200.0.1), используя инфраструктуру Apache CXF (такой прокси с некоторой обработкой).
Теперь проблемы с конфигурацией.
Когда JBoss нужно прослушивать входящие данные на eth0, IP 10.100.0.1, нужно запустить run.sh с ключом «-b»: run.sh -b 10.100.0.1, что просто и понятно.
Но я хочу расширить свою проблему: я хочу заставить JBoss вызывать веб-службу на другом хосте с 10.100.100.1 в качестве исходного IP-адреса для сетевого трафика. Как это сделать? Есть ли какой-либо переключатель/свойство/что угодно, которые выполняют эту работу?
Резюме:
JBoss привязывается к eth0 для прослушивания входящих данных на 10.100.0.1 и вызывает веб-сервис с исходным IP-адресом 10.100.100.1 на 10.200.0.1.
Пожалуйста, помогите мне, любые идеи действительно оценены. Я хочу избежать любой конфигурации перенаправления iptables/xinted :-)
С уважением,
Мариуш
PS. Я обнаружил еще одну похожую проблему (но связанную с собственным JBoss WS...) в моей компании: один из наших поставщиков программного обеспечения изменил jbossws-native-core.jar JBoss5, чтобы заставить это поведение, добавив строку:
bootstrap.setOption("localAddress", новый InetSocketAddress(localAddress, 0));
в NettyClient.java, когда localAddress предоставляется с ключом -D и считывается методом getProperty() в коде. Но также я хочу избежать каких-либо модификаций компонентов JBoss...