【问题标题】:apache shiro 1.5.3 web app tutorial returns 404 errorapache shiro 1.5.3 web app教程返回404错误
【发布时间】:2020-11-05 04:13:04
【问题描述】:

我正在尝试在 Web 应用程序中实现 Apache Shiro 1.5.3,我对 Shiro 完全陌生。我正在使用带有 Maven 的 Netbeans 11.3 作为 IDE。我还使用 Apache Tomcat 9.0.35 作为容器和本地主机。我自己为从 github 发布的 Shiro 教程创建了一个 Netbeans 项目(没有我自己的其他代码或内容):

https://shiro.apache.org/webapp-tutorial.html#project-setuphttps://github.com/lhazlewood/apache-shiro-tutorial-webapp

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

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

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

但是,home.jsp(和 index.jsp)文件显然已发布并且位于适当的位置;如果没有对 web.xml 和 shiro.ini 进行 Step-1a 和 b 更改,它们都可以正常工作。注意:我不熟悉建议的记录器 slf4j,但它包含在依赖项中,发布的 logback.xml 位于资源文件夹中,我没有更改对其中的任何引用或内容。我不认为这是当前问题的一个因素(但请继续关注...)

我最好的猜测是web.xml中指定的环境加载器监听器:

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

没有初始化,因此没有接收或过滤传入的 HTTP 请求。因此,找不到请求的 home.jsp 文件。此侦听器类存在于项目声明的依赖项中。除了 404 错误,我没有任何迹象表明问题可能是什么。

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

【问题讨论】:

    标签: web-applications shiro


    【解决方案1】:

    localhost日志报启动异常:

    15-Jul-2020 14:06:10.557 SEVERE [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 帖子和一个有效的解决方案:

    SEVERE: Exception starting filter ShiroFilter error

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      • 2019-03-28
      • 2013-11-29
      相关资源
      最近更新 更多