Как получить глобальные атрибуты, такие как имя приложения в свободе - PullRequest
1 голос
/ 10 февраля 2020

Я гуглю, но испытываю трудности с поиском translate для строк, которые передаются методу config.getServletContext (). GetAttribute () в следующих двух строках. Эти строки взяты из приложения, развернутого на WAS 8.5.

String applicationName = (String)config.getServletContext().getAttribute("com.ibm.websphere.servlet.enterprise.application.name");
String serverName = (String)config.getServletContext().getAttribute("com.ibm.websphere.servlet.application.host");

Я сейчас работаю / изучаю WAS Liberty.

Может быть, было бы еще лучше, если бы ссылка на ссылку для всех возможные атрибуты для Liberty (если существует ...)

EDIT

Извините, я не мог проверить это раньше, потому что другие ошибки в приложении блокируют выполнение, но получается, что эти строки передаются Метод getAttribute действителен даже на моем локальном тестовом сервере Liberty, поэтому:

String applicationName = (String)config.getServletContext().getAttribute("com.ibm.websphere.servlet.enterprise.application.name");
String serverName = (String)config.getServletContext().getAttribute("com.ibm.websphere.servlet.application.host");

допустим в WebSphere 8.5 и ТАКЖЕ в Liberty.

@ Методы Andy Guibert также подходят для получения AppName и HostName, даже в более общем виде.

В любом случае, я бы хотел go глубже в этом топи c, и я хотел бы найти документацию, в которой указаны все возможные строки, которые я мог бы передать (String) config.getServletContext (). GetAttribute ("") для получения информации в среде IBM, особенно в Liberty (если есть какая-либо разница с classi c Websphere) ...

Но я не могу его найти ...

1 Ответ

1 голос
/ 10 февраля 2020

Простой / стандартный способ получения имени приложения в приложении JavaEE заключается в использовании этого встроенного имени JNDI:

import javax.naming.InitialContext;
// ...

String appName = InitialContext.doLookup("java:app/AppName");

Чтобы получить имя хоста, вы, вероятно, можете просто использовать API JavaSE для этого:

InetAddress.getLocalHost().getHostName()

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

@Inject
@ConfigProperty(name = "foo", defaultValue = "bar")
String fooProperty;

Также здесь приведено руководство для Конфигурация MicroProfile для Liberty: https://openliberty.io/guides/microprofile-config-intro.html

...