org.apache.catalina.core.StandardWrapperValve.invoke 在路径为的上下文中,Servlet[jsp]的Servlet.service()引发了具有根本

org.apache.catalina.core.StandardWrapperValve.invoke 在路径为的上下文中,Servlet[jsp]的Servlet.service()引发了具有根本原因的异常无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

​ org.apache.jasper.JasperException: 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:

07-Apr-2021 22:47:39.893 严重 [http-nio-8080-exec-5] org.apache.catalina.core.StandardWrapperValve.invoke 在路径为的上下文中,Servlet[jsp]的Servlet.service()引发了具有根本原因的异常无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]
	org.apache.jasper.JasperException: 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]
		at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)
		at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:294)
		at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:81)
		at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
		at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
		at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
		at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
		at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
		at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
		at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
		at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
		at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
		at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

前提自己之前在网上找了很很多博客,发现还是没法解决自己的问题,然后他来了主要还是 c.tld文件找不到后来自己试了试发现还真有用

解决方法
第一种:最可能的是没有导入jstl-api-1.2.jar    standard-1.1.2.jar包造成。可以通过下列操作完成导入包:

<!--         JSTL 表达式依赖-->
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
        </dependency>
<!--        standard-->
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
友情提示不行还可以jstl-api-1.2.jar    standard-1.1.2.jar下载到本地,然后通过idea的 file→Project Structure→Project Setting→Modules→Dependencies 下 ,点击右侧急+号,选择下载到本地的这两个jar包进行导入。

还可能是apache-tomcat-9.0.44\lib下没有jstl-api-1.2.jar standard-1.1.2.jar这两个包也是能有错的

不行继续:要是问题还是没有解决就可以实行下一步

在web.xml下加入以下代码

    <jsp-config> <taglib> <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
        <taglib-location>/WEB-INF/lib/c.tld</taglib-location> </taglib> </jsp-config>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B9K8zvR1-1617850173379)(C:\Users\86135\AppData\Roaming\Typora\typora-user-images\image-20210408102329722.png)]

image-20210408102405866
然后复制META-INF\c.tld下的里面所有的代码到到刚刚新建的WEB-INF\lib\c.tld下
重启项目就可以了

/>

然后复制META-INF\c.tld下的里面所有的代码到到刚刚新建的WEB-INF\lib\c.tld下
重启项目就可以了

[http://java.sun.com/jsp/jstl/core]还有个更狠的方法,就是把idea重装还有tomcat
个人换了之后就没有这些问题了

最后问题终于解决了 万分感谢这位不知名的大佬,不知道上边能能不能帮到各位大佬由于自己也是刚入坑不久, 有说不对的地方还望谅解

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
根据您提供的引用内容,您的问题是有关在路径为[]的上下文servlet[com.controller.LoginServlet]的Servlet.service()引发异常的情况。根据引用内容,您曾经在项目遇到了一些版本兼容性和配置问题,并且在更改了一些配置后成功解决了这些问题。根据引用内容,您还遇到了一个关于身份验证的问题,您怀疑是自己更改了代码的某一部分导致了异常。现在让我来解答您的问题。 首先,当您在路径为[]的上下文调用servlet[com.controller.LoginServlet]的Servlet.service()方法时引发异常,这可能是由于多种原因导致的。其一种可能性是您的Servlet类没有正确地实现了Servlet接口的所有方法,或者在实现的过程出现了错误。另一种可能性是您的代码存在语法错误或逻辑错误,导致在处理请求时出现异常。 为了解决这个问题,您可以按照以下步骤进行排查: 1. 检查Servlet类的代码,确保它正确地实现了Servlet接口的所有方法,并且没有语法错误。您可以检查是否正确地重写了service()方法,并且在方法正确地处理了请求和响应。确保在方法没有任何可能引发异常的代码。 2. 检查您的身份验证逻辑,确保没有任何可能引发异常的代码。您可以逐行检查代码,确保条件语句和逻辑运算符的使用是正确的,并且没有任何潜在的空指针异常或类型不匹配的错误。 3. 通过日志或调试工具查看异常的详细信息,以获取更多的上下文和线索。异常信息通常会提供有关问题发生的具体位置和原因的提示。您可以根据这些信息进一步分析和解决问题。 总之,当在路径为[]的上下文调用servlet[com.controller.LoginServlet]的Servlet.service()方法引发异常时,您应该检查Servlet类的实现和身份验证逻辑,并通过查看异常信息来获取更多的上下文。这样可以帮助您找到问题并解决异常。 : 这里我 servlet-api 的版本从4.0.1 降到了 3.1.0 之前引入 servlet-api3.1.0是红的,引入依赖的时候给我自动升到了4.0.1, 我想着都能用,就没管,后面就一直报标记不可用,升了tomcat的版本又降回 8.5 ,诡异的是我配的 maven 3.3 版本,mvn -v 查看的是 3.6.3 想着应该是要手动选择触发的,又重新选择 3.3.3 版本,然后启动tomcat 看了下jdk走的是1.8 ,配置的是11 ,想着又到 project 下 选择11 … 重新运行tomcat ,好了,没报错了,走的版本也是配置的,也可以找到servlet 了… : 我想实现通过身份验证用户进入不同的页面,运行出来老是报错,然后把判断管理员,医生,和普通用户的if语句删掉程序就没问题了,是不是我自己改的这一段代码有问题?求指出问题所在。(java萌新,很多知识不会,每天沉浸在找bug的“欢乐”之。。。)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值