国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
淺談使用Eclipse和Tomcat開發(fā)項目過程中的文件操作
     注意:以下內(nèi)容基于 Eclipse Galileo J2EE版和apache-tomcat-6.0.26.tar.gz。
            首先說明一下,Eclipse工作空間路徑:D:\portal2_project\;項目源碼路徑:D:\portal2_project\ssh;解壓apache-tomcat-6.0.26.tar.gz到C:\tomcat6。
一、分析Eclipse關(guān)聯(lián)Tomcat時的文件操作
            在控制臺show出“Servers”選項卡后,new一個Server。Eclipse會在當(dāng)前工作空間新建一個“Servers”,我的是【Tomcat v6.0 Server at localhost】,自然Package Explorer也會有Servers這個目錄顯示。同時這個目錄會有類似用剛才new server時用的名字,我的為【Tomcat v6.0 Server at localhost-config】。
            下面開始分析“D:\portal2_project\Servers”這個【Tomcat v6.0 Server at localhost-config】目錄,對應(yīng)Eclipse就是“Servers”下的“Tomcat v6.0 Server at localhost-config”。可以看到里面有
view plaincopy to clipboardprint?
01.catalina.policy  
02.catalina.properties  
03.context.xml  
04.server.xml  
05.tomcat-users.xml  
06.web.xml 
    catalina.policy
    catalina.properties
    context.xml
    server.xml
    tomcat-users.xml
    web.xml
            看到這些,想到了”C:\tomcat6\conf“目錄。確實,經(jīng)過粗略的分析,Eclipse把除了logging.properties文件和Catalina目錄沒有復(fù)制過來,其余的6個文件都復(fù)制過來了。這個大家可以自己驗證:在六個文件中放入E文字符或者數(shù)字當(dāng)做標(biāo)記。關(guān)于這個先談到這里。下面回到Eclipse和我們新建工程上來。
二、字節(jié)碼文件的生成和相關(guān)拷貝
            新建項目時,Eclipse會在當(dāng)前工作空間下新建一個與你項目名相同的目錄,比如我的【ssh】,這個大家都知道,就不多說了。要說的是里面的【build】的【class】目錄。當(dāng)大家在Eclipse面板選中你的項目,然后Project——Build Project,此時,Eclipse會編譯你項目的java文件,得到的class文件就是放在里面的。大家可以證明的:寫一個打印語句的main方法,編譯后運(yùn)行成功一次,然后刪掉對應(yīng)該目錄下的class文件再運(yùn)行一次,Consol就會顯示“java.lang.NoClassDefFoundError: com/cmcc/dao/hibernate/Test”,還可以將[String path = Test.class.getResource("").getPath()] 打印出來,我得到的結(jié)果是“/D:/portal2_project/ssh/build/classes/com/cmcc/dao/hibernate/”。此過程就是希望大家明白在Eclipse里面運(yùn)行web項目中一個類的main方法時,該類的class文件也就是字節(jié)碼文件在什么地方。
             剛才談到了Eclipse將源碼java文件編譯后得到class文件,而這個只是“RUN AS   Java Application”時所用的class文件,哪Tomcat所用的class文件在什么地方呢?下面來跟大家一起找出來。
  在當(dāng)前工作空間下(我的是D:\portal2_project\)搜一我剛才寫的Test這段測試小代碼文件,大家很快發(fā)現(xiàn)在“D:\portal2_project\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ssh\WEB-INF\classes\com\cmcc\dao\hibernate”有它的存在,把這個路徑截斷來看,前一段“D:\portal2_project\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps”可以粗略認(rèn)作為是當(dāng)前工作空間下的某個臨時目錄。后面的“ssh\WEB-INF\classes\com\cmcc\dao\hibernate”則是與我項目源碼對應(yīng)的路徑。所以我在這認(rèn)為當(dāng)前工作空間下的“.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps”就是Tomcat所使用的虛擬目錄了。請注意這段路徑中的“tmp0”,這個不是唯一的,你的可能是“tmp1”或“tmp2”。
請大家保證自己的代碼在Eclipse啟動的Tomcat中能正常運(yùn)行后再分析這個虛擬目錄下的文件。
             下面是我分析的結(jié)果:Eclipse把項目中的WebContent下面的文件原封不動的拷貝到了虛擬目錄中對應(yīng)項目目錄下。然后會把剛才談到的【Build】下的【class】目錄全部拷貝到【W(wǎng)EB-INF】下。在拷貝字節(jié)碼這一過程中Eclipse會根據(jù)源碼校驗字節(jié)碼文件或其他文件的數(shù)量上的一致性。證明過程如下:把【Build】目錄刪掉,然后嘗試將項目publish到虛擬目錄,我得到了“Publishing failed with multiple errors   File not found: D:\portal2_project\ssh\build\classes\com\cmcc\dao\hibernate\userinfo\service\IUserInfoHiberanteService.class.”
 
 
 
三、應(yīng)用沒有使用更新后代碼的問題分析及解決方案
            剛才說到了數(shù)量上的一致性,為什么這樣說呢?這個問題暫不談,提另外一個開發(fā)中常見到的問題:為什么我更改代碼后,跑application時還報一樣的錯?為什么用注解時有時候會報404(如果不知道404是什么,請補(bǔ)一下J2EE基礎(chǔ)吧)?
             為了回答這個問題,那就把剛才談的一些內(nèi)容梳理一下:Eclipse一般會自動的把java源代碼文件編譯成class目標(biāo)文件放在【Build】目錄下的【class】中,然后當(dāng)我們當(dāng)我們發(fā)布項目到虛擬目錄時會把【Build】目錄中【class】Publish過去,而這個Publish只做了數(shù)量一致性校驗。剛才說到“Eclipse一般會自動的把java源代碼文件……”,請注意“一般”。既然有“一般”,那也應(yīng)該有“特殊”。現(xiàn)實中確實有,當(dāng)你的項目,不僅僅是當(dāng)前項目,包括其他當(dāng)前打開的項目中存在錯誤的話,這個編譯就失敗了。那【Build】下就不會有更新后的class文件了,而剛才談到Publish時只做數(shù)量一致性校驗,我沒有對項目文件數(shù)量更改,所以Publish或clean只是把舊字節(jié)碼文件復(fù)制過去了。既然虛擬目錄中的文件沒有變,那還報一樣的錯也就在清理之中了。
               碰見這樣的情況(改代碼還報一樣的錯)我是這樣做的:show出“Problems”選項卡,把非當(dāng)前項目全部close掉。然后右鍵當(dāng)前項目Validate或Build一次。errors和warings情況會在“Problems”中出現(xiàn)。根據(jù)這個情況去fix項目后Eclipse就可以編譯java文件了。
四、虛擬目錄的使用和Application的Start
           當(dāng)我們把自己的項目添加到新建的【Tomcat v6.0 Server at localhost】時。Eclipse會在上面一中談到的【Tomcat v6.0 Server at localhost-config】下的【server.xml】文件中新增一條Context記錄,我的是“<Context docBase="ssh" path="/ssh" reloadable="true" source="org.eclipse.jst.jee.server:ssh"/>”,然后大家肯定會去看虛擬目錄下【conf】目錄中的【server.xml】,我的為“<Context docBase="D:\portal2_project\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ssh" path="/ssh" reloadable="true" source="org.eclipse.jst.jee.server:ssh"/>”,分析的結(jié)果是相對路徑變成了絕對路徑。大家根據(jù)這一現(xiàn)象,可以后自己設(shè)置Tomcat的server.xml文件。
      個人感覺是Application的Start是Eclipse聯(lián)合了Tomcat下的部分“系統(tǒng)文件”和這個虛擬目錄,而Application的 運(yùn)行是由虛擬目錄下的【conf】配置文件在支撐著。這個感覺未經(jīng)求證。待閑時再做深入分析。
附流程圖總結(jié):
 
 
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/jacarri/archive/2010/12/07/6061257.aspx
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Eclipse兩種部署web項目方法
【140331-03】不推薦eclipse server整合tomcat:tomcat整合到eclipse,重啟tomcat時,server.xml被還原。
Eclipse中JSP生成的class文件在哪?
將Eclipse項目自動部署到Tomcat的webapps目錄下
Eclipse中集成Tomcat
在Eclipse中配置Struts2第一個HelloWorld項目
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服