У меня есть веб-приложение, основанное на Java, SQL Express и работающее на Tomcat. Я пытаюсь внедрить Shiro для аутентификации пользователей, вошедших в систему. До сих пор я успешно аутентифицировал пользователей, чьи учетные данные были сохранены в виде строки в файле shiro.ini. Следующим шагом, который я попробовал, было подключение shiro к моей базе данных, где хранятся учетные данные пользователя. У меня возникла проблема с инициализацией соединения с использованием имени JNDI. При запуске Tomcat я получаю следующую ошибку:
java.lang.IllegalStateException: Невозможно найти javax.sql.DataSource с именем jndi 'jdbc / data / server_startup'.
До сих пор я пытался получить jndi из файла web.xml моего веб-приложения, но безуспешно. Я думаю, что web.xml не является проблемой, поскольку он ссылается на ресурсы, определенные в context.xml конфигурации Tomcat, которую я использую для подключения веб-приложения к базе данных.
web.xml
<!-- DATASOURCE_SERVERSTARTUP -->
<Resource auth="Container" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" maxTotal="8" name="jdbc/data/server_startup" password="XX" type="javax.sql.DataSource" url="jdbc:sqlserver://192.168.0.100:2016;DatabaseName=MY_DATABASE;SelectMethod=cursor;" username="YY"/>
shiro.ini
[main]
ds = org.apache.shiro.jndi.JndiObjectFactory
ds.resourceName = jdbc/data/server_startup
ds.requiredType = javax.sql.DataSource
Буду признателен за любую помощь в настройке shiro с помощью sql express.