2015-07-18 1 views
1

У меня есть простой сервис RESTful, основанный на безопасности Джерси и Сиро.
Но все разбилось, когда я попытался развернуть.ClassNotFoundException: org.apache.shiro.web.env.EnvironmentLoaderListener

web.xml

<servlet> 
    <servlet-name>Application</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>alexiuscrow.ws</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>Application</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

<filter> 
    <filter-name>ShiroFilter</filter-name> 
    <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class> 
</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> 

Gradle зависимостей:

dependencies { 
    compile 'org.glassfish.jersey.core:jersey-server:2.19' 
    compile 'org.glassfish.jersey.containers:jersey-container-servlet:2.19' 
    compile 'org.apache.shiro:shiro-core:1.2.3' 
    compile 'org.apache.shiro:shiro-web:1.2.3' 
} 

Выход:

18-Jul-2015 21:28:10.775 SEVERE [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class org.apache.shiro.web.env.EnvironmentLoaderListener 
java.lang.ClassNotFoundException: org.apache.shiro.web.env.EnvironmentLoaderListener 
//... 

Что случилось? Почему он не может развертываться?

+0

Как развертывается приложение .. как война? – Garry

+0

@Garry, да. военный файл – Alexiuscrow

ответ

0

Кажется, что файл jar не может быть скопирован в папку WEB-INF/lib при построении.

Попробуйте использовать war плагин/задачи, все зависимости от текущей конфигурации будут скопированы в WEB-INF/lib

2

Вы используете Shiro 1.2.4? и вы включили slf4j-api-1.7.12? (SLF4J требуется Shiro)

Реально проблема от slf4j-api-1.7.12 Он сказал:

Uncaught exception from servlet 
java.lang.ExceptionInInitializerError 
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:149) 
    ... 
Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "createSecurityManager") 
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:382) 

Мое решение

Я поставил slf4j-api-1.7.7