問題一:
org.apache.jasper.compiler.TldLocationsCache tldScanJar
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
tomcat 7對EL表達(dá)式的語法要求比較嚴(yán)格苏携,例如"${owner.new}"因包含關(guān)鍵字new就會導(dǎo)致解析出錯(cuò)。
問題是出來了略就,怎么解決呢精置?有三種馍迄,如下:
第一種:嚴(yán)格遵守java規(guī)范檀葛,修改對象的屬性名稱忠怖,要求不包含java關(guān)鍵字;
第二種:修改EL表達(dá)式,例如"${owner.new}"可以修改為"${owner['new']}";
第三種:修改tomcat屬性旨剥,忽略對EL表達(dá)式的關(guān)鍵字檢查咧欣。修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true選項(xiàng)轨帜。
如果你的項(xiàng)目不需要Tld魄咕,就修改一下conf/catalina.properties文件
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar
問題二:
consider increasing the maximum size of the cache
直接簡單粗暴的關(guān)閉了cache,也是修改的conf/context.xml文件
<Resources
cachingAllowed="false"
/>
問題三:JVM優(yōu)化
參考鏈接http://blog.csdn.net/cicada688/article/details/14451541
本人租的是阿里云1G的虛擬機(jī),太小了總是內(nèi)存溢出蚌父,后來優(yōu)化樓下JVM就好了哮兰;
下邊是報(bào)錯(cuò)信息的頭部信息(問題以及解決方法)
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 57072 bytes for Chunk::new
# Possible reasons:
#? The system is out of physical RAM or swap space
#? In 32 bit mode, the process size limit was hit
# Possible solutions:
#? Reduce memory load on the system
#? Increase physical memory or swap space
#? Check if swap backing store is full
#? Use 64 bit Java on a 64 bit OS
#? Decrease Java heap size (-Xmx/-Xms)
#? Decrease number of Java threads
#? Decrease Java thread stack sizes (-Xss)
#? Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#? Out of Memory Error (allocation.cpp:390), pid=1928, tid=2960
# JRE version: Java(TM) SE Runtime Environment (8.0_25-b18) (build 1.8.0_25-b18)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.25-b02 mixed mode windows-amd64 compressed oops)
# Failed to write core dump.
根據(jù)提示 我修改如下:
在
:noJuliConfig
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"
這兩句下邊加上 set "JAVA_OPTS=-Xms64M -Xmx64M"(注意要帶雙引號)
這涉及到j(luò)vm的優(yōu)化,根據(jù)自己的內(nèi)存使用情況作出優(yōu)化梢什。
問題四:用idea打包war
問題五:tomcat server.xml的注意事項(xiàng)
這2個(gè)注釋必須要打開奠蹬,用的阿里云的鏡像 默認(rèn)是注釋掉的
問題六:打包war WEB-INFO的classes里邊沒有xml等資源文件
問題七:項(xiàng)目里的localhost 可以換成ip或者域名打包成war。
問題八:重新部署項(xiàng)目
問題九:鏈接阿里云redis服務(wù)
記得做驗(yàn)證 輸入密碼嗡午;否則報(bào)錯(cuò)Noauth authentication required with root cause
Tomcat7 的目錄結(jié)構(gòu)如圖:
1囤躁、bin:該目錄下存放的是二進(jìn)制可執(zhí)行文件,如果是安裝版荔睹,那么這個(gè)目錄下會有兩個(gè)exe文件:tomcat6.exe狸演、tomcat6w.exe,前者是在控制臺下啟動Tomcat僻他,后者是彈出UGI窗口啟動Tomcat宵距;如果是解壓版,那么會有startup.bat和shutdown.bat文件吨拗,startup.bat用來啟動Tomcat满哪,但需要先配置JAVA_HOME環(huán)境變量才能啟動,shutdawn.bat用來停止Tomcat劝篷;
2哨鸭、conf:這是一個(gè)非常非常重要的目錄,這個(gè)目錄下有四個(gè)最為重要的文件:
server.xml:配置整個(gè)服務(wù)器信息娇妓。例如修改端口號像鸡,添加虛擬主機(jī)等;
tomcatusers.xml:存儲tomcat用戶的文件哈恰,這里保存的是tomcat的用戶名及密碼只估,以及用戶的角色信息志群。可以按著該文件中的注釋信息添加tomcat用戶蛔钙,然后就可以在Tomcat主頁中進(jìn)入Tomcat Manager頁面了锌云;
web.xml:部署描述符文件,這個(gè)文件中注冊了很多MIME類型夸楣,即文檔類型宾抓。這些MIME類型是客戶端與服務(wù)器之間說明文檔類型的,如用戶請求一個(gè)html網(wǎng)頁豫喧,那么服務(wù)器還會告訴客戶端瀏覽器響應(yīng)的文檔是text/html類型的,這就是一個(gè)MIME類型幢泼〗粝裕客戶端瀏覽器通過這個(gè)MIME類型就知道如何處理它了。當(dāng)然是在瀏覽器中顯示這個(gè)html文件了缕棵。但如果服務(wù)器響應(yīng)的是一個(gè)exe文件孵班,那么瀏覽器就不可能顯示它,而是應(yīng)該彈出下載窗口才對招驴。MIME就是用來說明文檔的內(nèi)容是什么類型的篙程!
context.xml:對所有應(yīng)用的統(tǒng)一配置,通常我們不會去配置它别厘。
3虱饿、lib:Tomcat的類庫,里面是一大堆jar文件触趴。如果需要添加Tomcat依賴的jar文件氮发,可以把它放到這個(gè)目錄中,當(dāng)然也可以把應(yīng)用依賴的jar文件放到這個(gè)目錄中冗懦,這個(gè)目錄中的jar所有項(xiàng)目都可以共享之,但這樣你的應(yīng)用放到其他Tomcat下時(shí)就不能再共享這個(gè)目錄下的Jar包了,所以建議只把Tomcat需要的Jar包放到這個(gè)目錄下炼蛤;
4伞访、logs:這個(gè)目錄中都是日志文件,記錄了Tomcat啟動和關(guān)閉的信息没讲,如果啟動Tomcat時(shí)有錯(cuò)誤眯娱,那么異常也會記錄在日志文件中。
5食零、temp:存放Tomcat的臨時(shí)文件困乒,這個(gè)目錄下的東西可以在停止Tomcat后刪除!
6贰谣、webapps:存放web項(xiàng)目的目錄娜搂,其中每個(gè)文件夾都是一個(gè)項(xiàng)目迁霎;如果這個(gè)目錄下已經(jīng)存在了目錄,那么都是tomcat自帶的百宇。項(xiàng)目考廉。其中ROOT是一個(gè)特殊的項(xiàng)目,在地址欄中沒有給出項(xiàng)目目錄時(shí)携御,對應(yīng)的就是ROOT項(xiàng)目昌粤。http://localhost:8080/examples,進(jìn)入示例項(xiàng)目啄刹。其中examples就是項(xiàng)目名涮坐,即文件夾的名字。
7誓军、work:運(yùn)行時(shí)生成的文件袱讹,最終運(yùn)行的文件都在這里。通過webapps中的項(xiàng)目生成的昵时!可以把這個(gè)目錄下的內(nèi)容刪除捷雕,再次運(yùn)行時(shí)會生再次生成work目錄。當(dāng)客戶端用戶訪問一個(gè)JSP文件時(shí)壹甥,Tomcat會通過JSP生成Java文件救巷,然后再編譯Java文件生成class文件,生成的java和class文件都會存放到這個(gè)目錄下句柠。
8浦译、LICENSE:許可證。
9俄占、NOTICE:說明文件管怠。
問題十:圖片部署到服務(wù)器的目錄下(比如E:\pic\)
修改tomcat服務(wù)器conf文件夾下的server.xml文件,添加context標(biāo)簽如下所示:
其中path是映射的虛擬路徑(可視具體情況配置)缸榄,docBase是靜態(tài)資源存放的真實(shí)物理路徑渤弛,reloadable指有文件更新時(shí),是否重新加載甚带,一般設(shè)置為true后她肯,tomcat不需要重啟啟動,自動熱加載鹰贵!
然后重啟tomcat最終的訪問路徑是http://localhost:8080/pic/+E盤pic的子目錄結(jié)構(gòu)+文件名字
注意:/pic 就相當(dāng)于E:\pic\