Intellij-IDEA运行web项目异常

探讨IntelliJ IDEA部署Web项目时遇到的web.xml解析错误,详细分析了jsp显示异常的原因,提供了检查和解决缺失jar包的方法,以及如何在tomcat配置中调整设置以解决问题。
titletoclayoutcategoriestagsdate
Intellij IDEA 部署 Web 项目时,web.xml 无法正常解析导致 jsp 显示错误
false
blog
blog
Intellij IDEA
2019-02-28 03:00:13 -0800

{{title}}

Intellij IDEA 部署 Web 项目时,web.xml 无法正常解析导致 jsp 显示错误

错误信息

Intellij IDEA 控制台信息

 java.io.FileNotFoundException: Could not resolve XML resource [null] with public ID [-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN], system ID [http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd] and base URI [jar:file:/D:/Code/IDE-workspace/iptvView/target/WEB-INF/lib/standard-1.1.2.jar!/META-INF/c-1_0-rt.tld] to a known, local entity.
	at org.apache.tomcat.util.descriptor.LocalResolver.resolveEntity(LocalResolver.java:155)

Chrome 浏览器页面信息

HTTP Status 500 - The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
type Exception report

message The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:277)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:75)
	org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:250)
	org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:125)
	org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:421)
	org.apache.jasper.compiler.Parser.parseDirective(Parser.java:479)
	org.apache.jasper.compiler.Parser.parseElements(Parser.java:1435)
	org.apache.jasper.compiler.Parser.parse(Parser.java:139)
	org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
	org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:201)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:358)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:338)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:325)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:580)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
	org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.52 logs.

Apache Tomcat/8.0.52
  1. 项目 xxx/WEB-INF/lib 中不存在相关jar包;

可以从 mavenrepository地址 中找到相应jar包,添加相关依赖到pom.xml文件中并重新编译,查看问题是否解决。

注: 通过添加缺失jar可以解决的就不用往下看了

  1. 项目依赖中存在相关依赖,依然无法正常显示页面
  1. 找到项目配置的 tomcatxx\apache-tomcat-8.0.52\conf\context.xml文件
  1. 修改文件,添加如下内容

<Context xmlBlockExternal="false" >

注: 只需要添加下划线中的 xmlBlockExternal="false"Context 标签即可

总结:

  1. 出现jsp页面显示错误,一般都是缺少 jar 包所致。可检查在tomcat或编译后的文件夹中是否能够找到相关依赖。
  2. 上述异常中缺失的jar有,然而本次并不是缺少jar的错误
standard-1.1.2.jar、jstl-1.2.jar、jersey-server-1.9.jar、jstl-impl.jar
  1. 本博客无法解决疑问时,可简练相关关键字再搜索。

参考博客 新版Tomcat无法解析web.xml

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值