Web applications ApacheShiro 1.5.3 web应用程序教程返回404错误

Web applications ApacheShiro 1.5.3 web应用程序教程返回404错误,web-applications,shiro,Web Applications,Shiro,我正在尝试在一个web应用程序中实现ApacheShiro 1.5.3,我对Shiro完全是新手。我正在使用Netbeans 11.3和Maven作为IDE。我还使用ApacheTomcat9.0.35作为容器和本地主机。我已经为github发布的Shiro教程自己创建了一个Netbeans项目(没有我自己的代码或内容): 和 从教程的主级执行web应用程序时,它工作正常(此步骤不包括初始化或使用Shiro本身,但确认应用程序项目结构到目前为止是正确的,home.jsp和index.jsp都

我正在尝试在一个web应用程序中实现ApacheShiro 1.5.3,我对Shiro完全是新手。我正在使用Netbeans 11.3和Maven作为IDE。我还使用ApacheTomcat9.0.35作为容器和本地主机。我已经为github发布的Shiro教程自己创建了一个Netbeans项目(没有我自己的代码或内容):

从教程的主级执行web应用程序时,它工作正常(此步骤不包括初始化或使用Shiro本身,但确认应用程序项目结构到目前为止是正确的,home.jsp和index.jsp都存在,并将预期的“Hello World”页面呈现给浏览器)

当我按照教程的步骤1-a和步骤b将发布的web.xml和shiro.ini添加到web-INF中,清理并构建项目,使用Maven编译新的war文件(所有这些文件都报告构建成功),重新启动Tomcat并重新运行web应用程序时,我得到一个404错误:

HTTP状态404–未找到 类型状态报告 未找到消息JSP文件[/shiroproject/home.JSP]

然而,home.jsp(和index.jsp)文件显然已发布,并且位于适当的位置;它们都工作得很好,没有对web.xml和shiro.ini进行步骤1a和b的更改。注意:我不熟悉建议的记录器slf4j,但它包含在dependencies中,logback.xml发布在resources文件夹中,我没有更改其中的任何引用或内容。我不认为这是当前问题的一个因素(但请继续关注…)

我的最佳猜测是web.xml中指定的环境加载程序侦听器:

<listener>
    <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>

org.apache.shiro.web.env.EnvironmentLoaderListener
不会初始化,因此不会在HTTP请求传入时拾取或过滤该请求。因此,找不到请求的home.jsp文件。此侦听器类存在于项目声明的依赖项中。除了404错误之外,我没有任何迹象表明问题可能是什么


如果有人能提出调查的原因或途径,我将不胜感激。参考其他有用的文件也会有所帮助。非常感谢。

本地主机日志报告启动异常:

2020年7月15日14:06:10.557严重[main]org.apache.catalina.core.StandardContext.filterStart异常启动筛选器[ShiroFilter] javax.servlet.ServletException:org.apache.shiro.env.RequiredTypeException:名为“filterChainResolver”的对象不是必需的类型[org.apache.shiro.web.filter.mgt.filterChainResolver]

这让我找到了这个stackoverflow帖子和一个有效的解决方案: