Определите свой собственный ресурс. Смотрите документацию Tomcat. Вы предоставляете реализацию javax.naming.spi.ObjectFactory. Сделайте так, чтобы он возвращал соответствующую реализацию Context, чтобы поиск по некоторому имени возвращал соединение БД с этим именем. В моем случае необходимая запись в context.xml выглядела так:

даю серию веб-сервисов для своего приложения, и у меня есть необходимость доступа к другой базе данных, основанной на serviceCode, который передается в качестве параметра в вызове веб-сервиса.

Я настроил базовый ресурс с tomcat для доступа к базе данных, как это

<Resource name="jdbc/db_name" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="user" password="pass" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://server_ip:3306/db_name"/>

Но таким образом я должен настроить ресурс для каждой базы данных, которую я создаю на сервере, что я хотел, и что я не нашел информацию (или не понял), должен был быть в состоянии установить db_name как переменную, которая передается во время выполнения от веб-службы, поэтому в основном имеет только один ресурс и использует его динамически, вместо того, чтобы иметь ресурс для каждой базы данных (что потребовало бы от меня запуска сервера для изменения context.xml каждый раз, когда я создаю новую базу данных)

Я получаю доступ к ресурсу, используя скаляр

val db = Database.forDataSource(datasource("jdbc/db_name"))

и это тот момент, когда я хотел иметь возможность динамически передавать db_name или определять ресурс во время выполнения, есть ли альтернативный способ с tomcat / scala или я вынужден добавлять ресурс каждый раз?

Ответы на вопрос(1)

Ваш ответ на вопрос