2012-04-12 3 views
37

Я использую JBoss AS 7 и пытаюсь подключиться к своему приложению с использованием IP (с компьютера в интрасети). Это не работает. Если я тестирую компьютер, на котором есть сервер, я вижу, что система работает, если я перехожу через localhost (http: // localhost: 8080/MySystem ....), но нет. Если я попробую с IP (http: //: 8080/MySystem ....).JBoss AS 7 не принимает удаленные подключения

Любая помощь?

+1

Может быть брандмауэр вопрос? –

+0

Отправьте свой конфигурационный файл и укажите, используете ли вы автономный экземпляр или управляемый домен. – ddri

+0

Это отдельный экземпляр. Файл конфигурации по умолчанию (я просто добавил строку подключения к БД). – Tony

ответ

78

Ответ редактировать standalone.xml и вставить тэг любой-адрес вместо инет-адрес, связанный с 127.0.0.1

<interfaces> 
    <interface name="management"> 
     <inet-address value="127.0.0.1"/> 
    </interface> 
    <interface name="public"> 
     <any-ipv4-address/> 
    </interface> 
</interfaces> 
+9

'' работал, '' не работал в моем случае. –

+1

то же самое для меня; работает. У меня есть версия 7.1.1. однако это также работает:

7

Вы настроили IP-адрес в файле конфигурации?

Запуск jboss без настройки ip-адреса будет устанавливать адрес по умолчанию для jboss на localhost, который подходит для разработки или, возможно, для производственного сервера, где apache используется как прокси-сервер для jboss и находится на той же машине.

Чтобы установить адрес IP-для JBoss:

To a specific IP address 
run.sh -b 10.62.31.31 
To localhost or the IP address assigned to the server 
run.sh -b 0.0.0.0 

Вы также можете изменить его в файле конфигурации под <interfaces> section.

+2

, если вы находитесь в Windows, скрипт оболочки 'run.bat' –

+4

И в JBoss AS7 он не запускается вообще :-) Это автономный.sh для автономного сервера и domain.sh для сервера домена. В Windows просто измените sh на bat. –

+0

В JBoss AS 7 нет сценария «run.sh», и в то время как в этой версии был реализован ключ -b, на него не следует полагаться, поскольку есть проблемы с наследованием, когда IP-адрес определен в файле конфигурации. Переключатель будет работать только там, где остается токен java «$ {jboss.bind.address.management:127.0.0.1}». Как всегда, использование Management Console или Management CLI предлагает лучшие варианты администрирования. – ddri

20

Я изменил 127.0.0.1 (локальный) 0.0.0.0, в standalone.xml. Оно работает. Просто знайте о безопасности.

<interfaces> 
    <interface name="management"> 
     <inet-address value="${jboss.bind.address.management:0.0.0.0}"/> 
    </interface> 
    <interface name="public"> 
     <inet-address value="${jboss.bind.address:0.0.0.0}"/> 
    </interface> 
    <!-- TODO - only show this if the jacorb subsystem is added --> 
    <interface name="unsecure"> 
     <!-- 
      ~ Used for IIOP sockets in the standard configuration. 
      ~     To secure JacORB you need to setup SSL 
      --> 
     <inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/> 
    </interface> 
</interfaces> 
+0

Это работает, но вы можете уточнить, что вы подразумеваете под «Просто помните о безопасности»? – sho222

+1

Re. безопасности, если вы хотите, чтобы сервер был доступен извне, это не проблема, но вы можете ограничить интерфейс управления, чтобы он не был удаленно доступным. –

+1

Разрешение привязки к 0.0.0.0 означает, что сервер будет прослушивать подключения к любому ip, поэтому вы должны знать об этом. – droope

0

Не забывайте о брандмауэре!

Если вы исправили адреса привязки и до сих пор не можете подключиться к JBoss, попробуйте работать с брандмауэром сервера.

Чтобы остановить брандмауэр на Linux RHEL использовать эту команду:

/etc/init.d/iptables stop 

обновление: На RHEL7, где не установлен Iptables - вы можете использовать:

systemctl stop firewalld 
Смежные вопросы