欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解讀maven項(xiàng)目中Tomcat10與JSTL的問(wèn)題匯總(Debug親身經(jīng)歷)

 更新時(shí)間:2023年07月17日 10:09:58   作者:某猿蚊常叮  
這篇文章主要介紹了解讀maven項(xiàng)目中Tomcat10與JSTL的問(wèn)題匯總(Debug親身經(jīng)歷),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

maven項(xiàng)目中Tomcat10與JSTL的問(wèn)題匯總

如果你在學(xué)習(xí) web項(xiàng)目過(guò)程中遇到以下三種錯(cuò)誤,那么本篇可能會(huì)對(duì)你有所幫助:

1 無(wú)法在web.xml或使用此應(yīng)用程序部署的jar文件中解析絕對(duì)uri:[http://java.sun.com/jsp/jstl/core]

2 java.lang.NoClassDefFoundError:javax/servlet/jsp/tagext/TagLibraryValidator

3 java.lang.NoClassDefFoundError:jakarta/servlet/jsp/jstl/core/LoopTag

問(wèn)題描述與解決方法

這里先總結(jié)出解決方法

問(wèn)題1

無(wú)法在web.xml或使用此應(yīng)用程序部署的jar文件中解析絕對(duì)uri:[http://java.sun.com/jsp/jstl/core]

如果你的web服務(wù)器是10.0及以上,那么你可以在pom.xml中導(dǎo)入jstl依賴(lài)

<dependency>
	<groupId>org.glassfish.web</groupId>
	<artifactId>jakarta.servlet.jsp.jstl</artifactId>
	<version>2.0.0</version>
</dependency>

并且你需要將jakarta.servlet.jsp.jstl-2.0.0.jar解壓,并從其META-INF文件夾中取出你需要的.tld文件,(一般c.tld就夠用了)

并把這個(gè)文件導(dǎo)入到你項(xiàng)目的WEB-INF,這樣啟動(dòng)的時(shí)候Tomcat服務(wù)器就可以編譯到這個(gè)文件。

然后一定記得(假設(shè)你用的是idea,因?yàn)槠渌奈覜](méi)用過(guò))對(duì)maven項(xiàng)目做這些:

clean->validate->compile->install, 然后rebuild你的module,接著重啟tomcat,正常情況下問(wèn)題是可以解決的。關(guān)于問(wèn)題分析可以翻到下一節(jié)

如果你的web服務(wù)器是9.0及以下,那么你可以在pom.xml中引入jstl依賴(lài)

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

引用格式可以參考JSTL的官網(wǎng):http://tomcat.apache.org/taglibs/standard/

或者從官網(wǎng)下載一份jstl-1.2.jar拷貝到WEB-INF/lib中,并且解壓jstl-1.2.jar將其中的META-INF中的tld文件拷貝到你的WEB-INF文件夾下,當(dāng)然一定記得(假設(shè)你用的是idea,因?yàn)槠渌奈覜](méi)用過(guò))對(duì)maven項(xiàng)目做這些:

clean->validate->compile->install, 然后rebuild你的module,接著重啟tomcat,正常情況下問(wèn)題是可以解決的。關(guān)于問(wèn)題分析可以翻到下一節(jié)

問(wèn)題2

java.lang.NoClassDefFoundError:javax/servlet/jsp/tagext/TagLibrary Validator

假設(shè)你使用的Tomcat服務(wù)器是10.0及以上,那么大概率是在WEB-INF文件夾下,導(dǎo)入了x.tld文件,解決方法可以通過(guò)以上引入依賴(lài)的方式,也可以將jakarta.servlet.jsp.jstl-2.0.0.jarjakarta.servlet.jsp.jstl-api-2.0.0.jar兩個(gè)jar包手動(dòng)導(dǎo)入到WEB-INF/lib下,并且一定記得(假設(shè)你用的是idea,因?yàn)槠渌奈覜](méi)用過(guò))對(duì)maven項(xiàng)目做這些:

clean->validate->compile->install, 然后rebuild你的module,接著重啟tomcat,正常情況下問(wèn)題是可以解決的。關(guān)于問(wèn)題分析可以翻到下一節(jié)

也可以通過(guò)官網(wǎng)下載:https://jakarta.ee/zh/specifications/tags/2.0/

問(wèn)題3

java.lang.NoClassDefFoundError:jakarta/servlet/jsp/jstl/core/ LoopTag

假設(shè)你使用的Tomcat服務(wù)器是10.0及以上,解決方法可以通過(guò)以上引入依賴(lài)的方式,也可以將jakarta.servlet.jsp.jstl-api-2.0.0.jar這個(gè)jar包手動(dòng)導(dǎo)入到WEB-INF/lib下,并且一定記得(假設(shè)你用的是idea,因?yàn)槠渌奈覜](méi)用過(guò))對(duì)maven項(xiàng)目做這些:

clean->validate->compile->install, 然后rebuild你的module,接著重啟tomcat,正常情況下問(wèn)題是可以解決的。關(guān)于問(wèn)題分析可以翻到下一節(jié)

問(wèn)題原因分析

問(wèn)題一分析

無(wú)法在web.xml或使用此應(yīng)用程序部署的jar文件中解析絕對(duì)uri:[http://java.sun.com/jsp/jstl/core]

針對(duì)于這個(gè)問(wèn)題,網(wǎng)上給出的大部分解決方法都是下載:jstl-1.2.jarstandard-1.1.2.jar這兩個(gè)jar包,然后解壓取出其中的~文件放到WEB-INF文件夾下,但是這只能解決Tomcat9及以下的服務(wù)器。

關(guān)于為什么需要解壓出tld文件?

因?yàn)槟承┌姹镜?code>Tomcat在啟動(dòng)中會(huì)掃描jar包,但并不會(huì)掃描jar包中包含的tld文件,比如c.tld文件等,在tomcat編譯過(guò)程中被忽略了。

通過(guò)查閱我才知道下面這件事

眾所周知,由于Tomcat10使用的是JakartaEE9的標(biāo)準(zhǔn),Servlet的標(biāo)準(zhǔn)包不再由Apache支持維護(hù),轉(zhuǎn)交給Jakarta管理,對(duì)應(yīng)的最新JSTL只能在Jakarta.ee官網(wǎng)下載。

所以,對(duì)于Tomcat10原來(lái)的jstl-1.2.jar,已經(jīng)不能滿(mǎn)足了,換成了jakarta.servlet.jsp.jstl-2.0.0.jarjakarta.servlet.jsp.jstl-api-2.0.0.jar

問(wèn)題二分析

java.lang.NoClassDefFoundError:javax/servlet/jsp/tagext/TagLibraryValidator

我遇到這個(gè)錯(cuò)誤,是我將jstl-1.2.jar已經(jīng)導(dǎo)入到項(xiàng)目中,并且我還將c.tld文件導(dǎo)入了WEB-INF中,說(shuō)明還是少類(lèi)文件(但是我并沒(méi)有找到這個(gè)類(lèi)文件。。。)。

然后我新增了pom.xmljstl-2.0的依賴(lài),問(wèn)題就解決了

問(wèn)題三分析

java.lang.NoClassDefFoundError:jakarta/servlet/jsp/jstl/core/LoopTag

也就是編譯時(shí)找不到LoopTag類(lèi),我遇到這個(gè)情況是:

我已經(jīng)將jakarta.servlet.jsp.jstl-2.0.0.jar導(dǎo)入了,但是少了另一個(gè)包,后來(lái)我終于在jstl-api文件下發(fā)現(xiàn)了它

總結(jié)

debug的過(guò)程中,少不了要去看別人的經(jīng)歷,但是有時(shí)候耶穌救不了你,還得根據(jù)報(bào)什么錯(cuò),自己發(fā)現(xiàn)問(wèn)題,最好是重新建一個(gè)工程,通過(guò)對(duì)比,發(fā)現(xiàn)問(wèn)題。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot根據(jù)注解動(dòng)態(tài)執(zhí)行類(lèi)中的方法實(shí)現(xiàn)

    SpringBoot根據(jù)注解動(dòng)態(tài)執(zhí)行類(lèi)中的方法實(shí)現(xiàn)

    本文主要介紹了SpringBoot根據(jù)注解動(dòng)態(tài)執(zhí)行類(lèi)中的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • SpringCloud Gateway路由組件詳解

    SpringCloud Gateway路由組件詳解

    SpringCloud Gateway 是 Spring Cloud 的一個(gè)全新項(xiàng)目,它旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效的統(tǒng)一的 API 路由管理方式。這篇文章主要介紹了SpringCloud Gateway網(wǎng)關(guān)作用,需要的朋友可以參考下
    2023-02-02
  • Java實(shí)現(xiàn)的數(shù)組去重與排序操作詳解

    Java實(shí)現(xiàn)的數(shù)組去重與排序操作詳解

    這篇文章主要介紹了Java實(shí)現(xiàn)的數(shù)組去重與排序操作,結(jié)合實(shí)例形式分析了Java針對(duì)數(shù)組去重及排序操作相關(guān)遍歷、排序、判斷等使用技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • @RequestBody不能映射到對(duì)象的解決

    @RequestBody不能映射到對(duì)象的解決

    這篇文章主要介紹了@RequestBody不能映射到對(duì)象的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringSecurity獲取當(dāng)前登錄用戶(hù)的信息的幾種方法實(shí)現(xiàn)

    SpringSecurity獲取當(dāng)前登錄用戶(hù)的信息的幾種方法實(shí)現(xiàn)

    本文主要介紹了SpringSecurity中獲取當(dāng)前登錄用戶(hù)信息的多種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • Java用鄰接矩陣存儲(chǔ)圖的示例代碼

    Java用鄰接矩陣存儲(chǔ)圖的示例代碼

    鄰接矩陣通常采用一個(gè)一維數(shù)組存儲(chǔ)圖中節(jié)點(diǎn)的信息,采用一個(gè)二維數(shù)組存儲(chǔ)圖中節(jié)點(diǎn)之間的鄰接關(guān)系。本文將利用Java實(shí)現(xiàn)用鄰接矩陣存儲(chǔ)圖,需要的可以參考一下
    2022-06-06
  • 如何利用JAVA正則表達(dá)式輕松替換JSON中的大字段

    如何利用JAVA正則表達(dá)式輕松替換JSON中的大字段

    這篇文章主要給大家介紹了關(guān)于如何利用JAVA正則表達(dá)式輕松替換JSON中大字段的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java實(shí)現(xiàn)任務(wù)超時(shí)處理方法

    Java實(shí)現(xiàn)任務(wù)超時(shí)處理方法

    任務(wù)超時(shí)處理是比較常見(jiàn)的需求,Java中對(duì)超時(shí)任務(wù)的處理有兩種方式,在文中給大家詳細(xì)介紹,本文重點(diǎn)給大家介紹Java實(shí)現(xiàn)任務(wù)超時(shí)處理方法,需要的朋友可以參考下
    2019-06-06
  • Java編程實(shí)現(xiàn)統(tǒng)計(jì)數(shù)組中各元素出現(xiàn)次數(shù)的方法

    Java編程實(shí)現(xiàn)統(tǒng)計(jì)數(shù)組中各元素出現(xiàn)次數(shù)的方法

    這篇文章主要介紹了Java編程實(shí)現(xiàn)統(tǒng)計(jì)數(shù)組中各元素出現(xiàn)次數(shù)的方法,涉及java針對(duì)數(shù)組的遍歷、比較、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • Spring MVC之WebApplicationContext_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Spring MVC之WebApplicationContext_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Spring MVC之WebApplicationContext的相關(guān)資料,需要的朋友可以參考下
    2017-08-08

最新評(píng)論