JADE - агент хостинг веб-сервиса (wsdl)

1

Я создаю систему, которая использует агенты JADE для выполнения определенных задач. Один сценарий, один из агентов должен разместить веб-сервис для связи с мобильным приложением.

К сожалению, порт, открытый агентом, не отображается в системе. Я использую код для открытия порта 9191 на localhost:

    Endpoint.publish("http://" + Inet4Address.getLocalHost().getHostAddress()":9191/QrReceiver", qr);

Эта процедура getLocalHost() возвращает 127.0.1.1 (которая не является локальным хостом), но когда я заставляю ip быть 127.0.0.1, я могу получить доступ к файлу wsdl на

    http://localhost:9191/QrReceiver?wsdl 

но я не могу использовать какое-либо другое устройство для доступа к чему-либо на этом порту. Кроме того, утилита portscanner не находит этот порт (но находит порты 1099 и 7778, которые используются агентами JADE (и контейнером) для обмена данными между устройствами).

Как я могу использовать агент JADE для размещения веб-службы на основе wsdl?

спасибо заранее, Мартин

Теги:
wsdl
agents-jade
agents

1 ответ

1
Лучший ответ

Раньше у меня была такая же проблема. Это может произойти из-за двух вещей.

  1. Inet4Address.getLocalHost().getHostAddress() возвращает ваш адрес localhost. т.е. 127.0.0.1 Таким образом, ваша служба размещена локально и доступна только для вашего локального хоста. Он не может получить доступ через сеть.

    Если вы используете статический IP-адрес, такой как 192.168.1.1. Затем поставьте его в конечную точку обслуживания как Endpoint.publish("http://192.168.1.1:9191/QrReceiver", qr); , без динамического локального IP-адреса. Тогда вы сможете получить доступ к ней по сети.

  2. Возможно, ваш брандмауэр может заблокировать порт 9191. Поэтому убедитесь, что порт свободен и открыт для соединений.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню