Есть ли способ передать специфические свойства приложения в Websphere? - PullRequest
0 голосов
/ 30 октября 2019

У нас есть сервер приложений websphere, на котором развернуто несколько приложений. Все приложения используют общее свойство (ключ), но имеют разные значения. Например: spring.profiles.active = test в одном приложении, spring.profiles.active = UAT в другом приложении. Можно ли передать эти различные значения приложениям во время запуска в Websphere?

Если мы установим эти значения в параметрах JVM в текстовом поле Generic JVM Arguments, оно станет одинаковым для всех приложений, которые нам не нужны.

Установите эти свойства на уровне приложения вwebsphere, чтобы при запуске приложений - для приложения 1 - spring.profiles.active = test для приложения 2 - spring.profiles.active = UAT

1 Ответ

2 голосов
/ 30 октября 2019

Этот документ указывает, что вы можете установить свойство spring.profiles.active в WebApplicationInitializer для каждого веб-приложения. Каждое приложение может затем прочитать свое собственное имя с определенным именем из системных свойств. В качестве альтернативы, если вы используете Liberty (вопрос не указывается между традиционным WebSphere и Liberty), то вы можете использовать MicroProfile Config для определения свойства с общим именем, которое определяется по-разному для приложения через appProperties, например, как показано в thisстатья центра знаний . Но вам все равно потребуется WebApplicationInitializer, чтобы считывать значение из MicroProfile Config .

Примером может быть что-то вроде следующего:

Config config = ConfigProvider.getConfig();
servletContext.setInitParameter(
    "spring.profiles.active",
    config.getValue("ProfilesActive", String.class));

server.xml:

<server>
  <featureManager>
    <feature>mpConfig-1.3</feature>
    .. other features
  </featureManager>

  <application location="app1.war">
    <appProperties>
      <property name="ProfilesActive" value="test"/>
    </appProperties>    
  </application>

  <application location="app2.war">
    <appProperties>
      <property name="ProfilesActive" value="UAT"/>
    </appProperties>    
  </application>
</server>
...