Apache shiro:配置shirofilter后无法启动应用程序

时间:2016-09-12 10:03:27

标签: jsf-2.2 shiro

我正在使用TomEE 7.0.1下的PrimeFaces 6.0和Apache Shiro 1.3.1开发基于maven的JSF webapp。 IDE是NetBeans 8.1。

的pom.xml

<dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
        <!-- JSF UI Library -->
        <!-- https://mvnrepository.com/artifact/org.primefaces/primefaces -->
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>6.0</version>
        </dependency>
        <!-- Logging -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.7</version>
        </dependency>
        <!-- Application Security -->
        <!-- Required in all environments -->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!-- Enables support for web-based applications -->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-web</artifactId>
            <version>1.3.1</version>
        </dependency>
    </dependencies>

的web.xml

 <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>

        <listener>
            <listener-class>
                org.apache.shiro.web.env.EnvironmentLoaderListener
            </listener-class>
        </listener>
     <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
<welcome-file-list>
        <welcome-file>faces/login.xhtml</welcome-file>
    </welcome-file-list>

shiro.ini

[main]
authc.loginUrl = /login.xhtml
authc.successUrl = /index.xhtml
cacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $cacheManager

[users]
root = topsecret, admin

[roles]
admin = *
guest = *

[urls]
/login.xhtml = authc
/logout = logout

当我运行应用程序时,我看到了这个异常跟踪:

org.apache.openejb.OpenEJBException: Unable to load servlet listener class:   org.apache.shiro.web.env.EnvironmentLoaderListener
.........
.......
Caused by: java.lang.ClassNotFoundException:   org.apache.shiro.web.env.EnvironmentLoaderListener

这里有什么问题?

0 个答案:

没有答案