Android-приложение, работающее на локальном сервере доступа к устройству (на MacBook) в моем случае

Я использую MacBook для разработки приложений для Android. Я также разработал приложение Java EE, работающее на моем локальном сервере. Теперь я хочу, чтобы мое приложение для Android, работающее на устройстве, взаимодействовало с моим локальным хост-сервером (wildfly), работающим на MacBook. Я попробовал следующие шаги:

  • На своем MacBook я сделал следующее:

    1. Установите подключение к Интернету, подключив мой MacBook проводным кабелем Ethernet через адаптер.

    2. Я захожу в «Системные настройки» -> «Общий доступ» -> выбираю «Поделиться моим подключением из Thunderbolt Ethernet». Для «компьютеров, использующих Wi-Fi» -> включаю «Общий доступ в Интернет».

    3. Я проверил IP-адрес своего MacBook, это 192.168.2.30.

  • На своем устройстве Android я сделал следующее:

    1. Включите параметр Wi-Fi, я вижу точку доступа MacBook, мое устройство Android успешно подключено к точке доступа MacBook.

    2. Мое приложение для Android запрограммировано на доступ к серверу по адресу http://192.168.2.30/MyServerApp-1.0-SNAPSHOT/rest.

    3. Я устанавливаю свое приложение для Android и запускаю его на устройстве. Но он не может получить доступ к моему локальному серверу. Я также не могу получить доступ к локальному хосту из браузера устройства. IP-адрес моего устройства 192.168.1.2 Почему? Где я ошибаюсь или чего-то не хватает?

P.S. в моем приложении для Android у меня есть все необходимые разрешения, например. <uses-permission android:name="android.permission.INTERNET" />, мое приложение может получить доступ к производственному серверу. Моя проблема связана с доступом к локальному серверу.


person Mellon    schedule 13.03.2014    source источник
comment
Можете ли вы получить доступ к своему локальному серверу из браузера на устройстве. Также проверьте IP вашего устройства в настройках Wi-Fi.   -  person Mobility    schedule 13.03.2014
comment
Нет, я также не могу получить доступ к локальному хосту из браузера. Смотрите мое обновление, пожалуйста.   -  person Mellon    schedule 13.03.2014
comment
Проверьте настройки вашего сервера и убедитесь, что он прослушивает правильный IP-адрес. Если это порт 80. Из терминала запустите netstat -an | grep 80 и посмотрите, какой ip слушает сервер.   -  person Mobility    schedule 13.03.2014
comment
Вы не забыли указать это в манифесте: <uses-permission android:name="android.permission.INTERNET" />   -  person Rick Falck    schedule 13.03.2014
comment
@Rick, проверь мое обновление, пожалуйста   -  person Mellon    schedule 13.03.2014
comment
@ Мобильность, мой сервер работает на правильном IP-адресе через порт 8080.   -  person Mellon    schedule 13.03.2014


Ответы (1)


В вашем описании вы не упоминаете о внесении каких-либо изменений в IP-адрес, к которому привязан WildFLy, по умолчанию это локальный хост, что означает, что он недоступен для любых удаленных клиентов.

Если вы запустите WildFly с помощью следующей команды: -

./standalone.sh -b 192.168.2.30

Это заставит WildFly прослушивать общедоступный IP-адрес вашего компьютера.

В качестве альтернативы отредактируйте файл standalone.xml и в разделе интерфейсов измените определение общедоступного интерфейса на: -

    <interface name="public">
        <inet-address value="192.168.2.30"/>
    </interface>
person Darran L    schedule 27.03.2014
comment
На самом деле это может быть неуместно, читая ваше описание еще раз, вы говорите, что приложение закодировано для доступа к одному адресу, а ваш компьютер работает с другим адресом, приложению Android придется использовать адрес вашего Mac, если этот альтернативный адрес не указан. некоторая форма прокси-сервера или запросов переадресации брандмауэра на ваш Mac. - person Darran L; 27.03.2014