Я использую Glassfish 3.1.2.2. Можно ли определить номер порта http (http-listener-1) из кода java (EJB)? У меня нет никаких соединений или запросов, поэтому чтение ServletRequest не является вариантом.Определить номер порта HTTP-порта Glassfish из кода Java без запроса
ответ
Да, это возможно. Вы можете использовать API-интерфейс REST API Glassfish для получения почти каждого свойства сервера.
Для свойств http-listener-1
используйте следующий адрес: http://localhost:4848/management/domain/configs/config/server-config/network-config/network-listeners/network-listener/http-listener-1
запрос Нормального GET даст вам ответ HTML, установить заголовок Accept
для application/json
, чтобы получить ответ в формате JSON.
В вашем EJB вам просто нужно отправить HTTP-запрос на url сверху с правом заголовком. Вот пример:
String url = "http://localhost:4848/management/domain/configs/config/server-config/network-config/network-listeners/network-listener/http-listener-1";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestProperty("Accept", "application/json");
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Это даст вам результат, похожий на этот:
{
"message": "",
"command": "http-listener-1",
"exit_code": "SUCCESS",
"extraProperties": {
"commands": [
{
"path": "create-ssl",
"method": "POST",
"command": "create-ssl"
}
],
"methods": [
{
"name": "GET"
},
{},
{
"messageParameters": {
"address": {
"defaultValue": "0.0.0.0",
"optional": "true",
"type": "string",
"key": "false"
},
"enabled": {
"defaultValue": "true",
"optional": "true",
"type": "boolean",
"key": "false"
},
"jkConfigurationFile": {
"defaultValue": "${com.sun.aas.instanceRoot}/config/glassfish-jk.properties",
"optional": "true",
"type": "string",
"key": "false"
},
"jkEnabled": {
"defaultValue": "false",
"optional": "true",
"type": "boolean",
"key": "false"
},
"name": {
"optional": "false",
"type": "string",
"key": "true"
},
"port": {
"optional": "false",
"type": "int",
"key": "false"
},
"protocol": {
"optional": "false",
"type": "string",
"key": "false"
},
"threadPool": {
"optional": "true",
"type": "string",
"key": "false"
},
"transport": {
"optional": "false",
"type": "string",
"key": "false"
}
},
"name": "POST"
},
{
"messageParameters": {
"target": {
"acceptableValues": "",
"defaultValue": "server",
"optional": "true",
"type": "string"
}
},
"name": "DELETE"
}
],
"entity": {
"address": "0.0.0.0",
"enabled": "true",
"jkConfigurationFile": "${com.sun.aas.instanceRoot}/config/glassfish-jk.properties",
"jkEnabled": "false",
"name": "http-listener-1",
"port": "8080",
"protocol": "http-listener-1",
"threadPool": "http-thread-pool",
"transport": "tcp"
},
"childResources": {
"find-http-protocol": "http://localhost:4848/management/domain/configs/config/server-config/network-config/network-listeners/network-listener/http-listener-1/find-http-protocol",
"property": "http://localhost:4848/management/domain/configs/config/server-config/network-config/network-listeners/network-listener/http-listener-1/property"
}
}
}
Как вы можете видеть результат содержит порт (8080 в данном случае).
Вы можете либо разобрать значение вручную из строки ответа, либо использовать некоторую библиотеку JSON для преобразования ответа на объект JSON, из которого вы можете легко получить свойство.
Эта процедура должна работать, если ваш интерфейс Glassfish Admin не защищен, если вы включили безопасное администрирование, вам может потребоваться отправить параметры авторизации с вашим HTTP-запросом.
Смотрите также:
- 1. Как определить номер COM-порта USB-ключа?
- 2. FTPClient JAVA, номер порта
- 3. Получить номер порта сервера от tomcat без запроса
- 4. Изменить номер искрового порта Java
- 5. Номер COM-порта из Windows.Devices.Enumneration.DeviceInformation
- 6. Удалить номер порта из HTTP-запроса Node для внешнего API
- 7. Почему mod_rewrite удаляет номер порта из моего запроса?
- 8. JQuery, ajax, номер порта
- 9. Получить номер исходящего порта из urllib2
- 10. UDP, получающий номер порта другого партнера (Java)
- 11. Как выбрать номер порта?
- 12. Как удалить номер порта из url?
- 13. Определить номер COM-порта с помощью заданного PnpDeviceID: всегда ли идентификатор устройства COM-порта «COMx»?
- 14. UserDefined Номер порта
- 15. Номер порта источника гнезд
- 16. номер порта HTTP-сервера
- 17. Матч номер порта
- 18. Веб-сервер, принимающий номер порта
- 19. номер порта на сервере
- 20. Номер измененного порта Javamail
- 21. Glassfish: Развертывание приложения с использованием уникального порта
- 22. Tomcat: как получить номер безопасного порта в Java?
- 23. как сменить номер порта
- 24. номер порта клиента
- 25. Номер порта, повторяющийся дважды?
- 26. номер порта в URL
- 27. ServletHttpRequest.getRequestUrl потерял номер порта
- 28. node-RED номер порта
- 29. Найти номер порта
- 30. Что означает «[::]: номер порта»?