Я использую NetBean 8.2, чтобы узнать, как использовать Apache Shiro, но столкнувшись с проблемой развертывания. Когда я пытаюсь отлаживать веб-приложения на Glassfish 4.0, я получаю эту ошибку:Shiro ini не найден или пуст/неконфигурирован
Severe: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.shiro.config.ConfigurationException: Shiro INI configuration was either not found or discovered to be empty/unconfigured.
сообщения Ошибки в точности как найденному в этом посте: netbeans 8.0.1 cant find shiro.ini. Однако мой Shiro.ini уже находится в папке WEB-INF (подтвердите, заглянув в файл WAR).
Сиро INI
[main]
user.loginUrl = /login.xhtml
jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.authenticationQuery = select password from users where username = ?
jdbcRealm.userRolesQuery = select name from roles where userid = (select id from users where username = ?)
ds = com.mysql.jdbc.jdbc2.optional.MysqlDataSource
ds.jdbcUrl=jdbc:mysql://<serverip>/<databasename>
ds.user = <username>
ds.password = <password>
jdbcRealm.dataSource = $ds
securityManager.realms = $jdbcRealm
[urls]
/login.xhtml = user
web.xml
<listener>
<listener-class>
org.apache.shiro.web.env.EnvironmentLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
<init-param>
<param-name>configPath</param-name>
<param-value>classpath:shiro.INI</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
С или без узла INIT-парам, та же ошибка отображается в журнале консоли.
Где находится папка WEB-INF? –
Буквально, только внутри WEB-INF, а не в WEB-INF/lib в учебнике Info-Q и BalusC. В моем предыдущем тесте, используя встроенные имена пользователей в INI, он будет развернут в Glassfish. – MooCow
Должно быть в 'WEB-INF/classes', так как вы просите загрузить его из' classpath'. Кроме того, если это не Windows, регистр в имени имеет значение, поэтому 'shiro.INI' и' shiro.ini' ссылаются на разные ресурсы. –