Spring boot 報錯java.lang.NullPointerException: null
阿新 • • 發佈:2019-02-05
新學習 Spring boot
按照網上資料搭建(相容jsp),成功啟動,正常遇見 helloworld
但頁面一直不讓用EL表示式,報錯如下:
java.lang.NullPointerException: null at javax.el.CompositeELResolver.add(CompositeELResolver.java:117) ~[javaee-api-8.0.jar:na] at org.apache.jasper.el.ELContextImpl.<clinit>(ELContextImpl.java:87) ~[tomcat-embed-jasper-8.5.23.jar:8.5.23] at org.apache.jasper.compiler.Validator$ValidateVisitor.prepareExpression(Validator.java:1617) ~[tomcat-embed-jasper-8.5.23.jar:8.5.23] at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:750) ~[tomcat-embed-jasper-8.5.23.jar:8.5.23] at org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:959) ~[tomcat-embed-jasper-8.5.23.jar:8.5.23] .....
以為JSP相容有問題,又經過一系列調整,報的異常換了幾換,還是不行。調整方向有誤
終發現問題出在pom.xml 引入了不應該引入的
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0</version>
</dependency>
我當初引入這個的原因是在建立maven 工程時報錯,於是為了讓它不報錯而新增的,包括web.xml的修改(此檔案在spring boot中無用)
去掉即可,至於原因個人猜是 javaee-api 重寫了springboot父類的web.xml.
原因純屬個人臆測,有高手明白願聞其詳,此文章留給自己備查。
另外還有個發現
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath /> </parent>
中1.5.9版本和1.33版本的SpringBootServletInitializer所在包不同,但並不影響使用,改下即可。