Порядок загрузки JNDI GlobalNamingResource

В моем server.xml у меня есть следующее:

<Resource name="secrets-server"
      auth="Container"
      type="linux.socketipc.IPCServer"
      factory="SecretsVaultServerFactory" />



<!-- IDM Datasource for portal -->
<Resource name="idm_portal"
    auth="Container"
    factory="db.DataSourceWrapper"
    type="javax.sql.DataSource"
    maxLifetime="600000"
    connectionTimeout="30000"
    dataSourceClassName="org.postgresql.ds.PGSimpleDataSource"
    maximumPoolSize="145"
    minimumIdle="145"
    dataSource.url="jdbc:postgresql://xxx.xxx.xxx.xxx:1234/plf_idm?ssl=true"
    dataSource.user="plf" />

Класс оболочки Datasource зависит от SecretsVaultServerFactory, который сначала загружается tomcat, чтобы он мог выполнить поиск контекста и использовать внутри него объект SecretsVault:

        SecretsVault sv = (SecretsVault) nameCtx.lookup("secrets-server");

Проблема в том, что JNDI GlobalNamingResources загружается не по порядку. Или я просто не знаю, как контролируется порядок.

Если ресурс DataSourceWrapper загружен до сервера секретов, я получаю следующую ошибку:

javax.naming.NameNotFoundException: Name [secrets-server] is not bound in this Context. Unable to find [secrets-server].

Что имеет смысл, потому что он еще не был загружен. Есть ли способ заставить JNDI сначала загрузить ресурс моего сервера секретов, прежде чем будут загружены какие-либо другие ресурсы глобального именования?

0 ответов

Другие вопросы по тегам