Как мы можем получить порт 8080 от adempiere, чтобы дать его динамически

У меня есть программа отправки сообщений с сервера на клиент, которая работает внутри adempiere. Здесь я должен указать порт поставки: 8080 динамически, т.е. порт не должен быть жестко запрограммирован. Теперь я жестко кодирую порт 8080 в serversocket и socket

Сервер

    ServerSocket srvr = new ServerSocket(8080, 1, InetAddress.getByName(mSession.getRemote_Addr()));

Клиент

    Socket skt = new Socket(ip.getHostAddress(), 8080);

Пожалуйста, предложите метод восстания против этого жесткого кодирования. Помогите мне, пожалуйста.


person Antony Joslin    schedule 26.08.2016    source источник


Ответы (1)


Веб-порт является частью данных конфигурации, которые используются при запуске процесса установки, но не доступны серверу/клиенту после завершения установки. Чтобы получить доступ к данным, вам нужно будет снова загрузить данные конфигурации следующим образом:

int webPort = 8080;
ConfigurationData data = new ConfigurationData(null);
if (data.load()) {
    webPort = data.getAppsServerWebPort ();
}

ServerSocket srvr = new ServerSocket(webPort, 1, InetAddress.getByName(mSession.getRemote_Addr()));
person Michael McKay    schedule 02.09.2016