<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    struts wen ti 1

    Posted on 2006-12-04 01:21 笨蛋啊帆 閱讀(187) 評論(0)  編輯  收藏



    一、Win2k + JDK1.4 + Apache Tomcat 4.1.27 + jakarta-struts-1.1 環境

    本例新建struts項目應用的存放路徑為:TOMCAT_HOME\webapps\ROOT\StrutsWeb 。
    (TOMCAT_HOME是Apache Tomcat 4.1.27在服務器的安裝路徑,根據具體情況而有所不同,StrutsWeb即是一個struts項目應用的保存路徑)


    1.訪問JSP頁面:http://127.0.0.1:8080/StrutsWeb/index.jsp ,出現類似下面的錯誤提示:

    ? “org.apache.jasper.JasperException: File "/WEB-INF/struts-bean.tld" not found”
    ? “org.apache.jasper.JasperException: File "/WEB-INF/struts-html.tld" not found”

    解決辦法:

    *1*.

    先檢查struts應用的標簽文件的配置情況,對應\jakarta-struts-1.1\lib\中的*.tld文件,看看\StrutsWeb\WEB-INF\中的*.tld文件是否完整。
    如果不全,則需要從\jakarta-struts-1.1\lib\中,把全部*.tld文件copy至\StrutsWeb\WEB-INF\中。
    然后重新啟動Apache Tomcat,看看效果如何。
    *.tld是標簽庫描述器文件,它們描述了多個struts標記庫中的自定義標簽。
    ? ?
    *2*.

    如果確認struts項目的標簽文件配置無誤,那么,在一般情況下,是需要把struts項目的這個WEB應用在Tomcat的服務應用中單獨描述出來,
    即需修改TOMAT_HOME\conf\server.xml文件,在server.xml中找到如下行:

    ? <!-- Tomcat Root Context -->
    ? <!--
    ? ? ? <Context path="" docBase="ROOT" debug="0"/>
    ? -->

    然后在其下面加上這句:

    ? <Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true"/>

    保存server.xml,然后重新啟動Apache Tomcat,這樣就可以訪問這個WEB應用了。

    即可這樣訪問:http://127.0.0.1:8080/mystruts/
    ? ? ? ? ? ?或 http://127.0.0.1:8080/mystruts/index.jsp。

    注意:“TOMCAT_HOME”的具體含義如前所述,是根據本機的情況而定的。



    2.訪問JSP頁面:http://127.0.0.1:8080/mystruts/index.jsp ,出現如下的錯誤提示:
    ? ?
    ? “org.apache.jasper.JasperException: Cannot find ActionMappings or ActionFormBeans collection”

    解決辦法:

    *1*

    對應\jakarta-struts-1.1\lib\中的*.jar文件(struts1.1共有10個*.jar文件),看看\StrutsWeb\WEB-INF\lib\中的*.jar文件是否完整。
    如果在\StrutsWeb\WEB-INF\lib\中只有一個struts.jar,那么將其他的*.jar文件也copy到\StrutsWeb\WEB-INF\lib\中。
    然后重新啟動Apache Tomcat即可訪問。
    struts.jar是一個重要的文件,它包含了struts中的所有Java類。

    *2*

    如果經過上面的一步還沒有搞定,那么請耐心的檢查或修改\StrutsWeb\WEB-INF\中的struts-config.xml配置文件。
    看看struts配置情況是否寫錯,action-mappings的配置是否寫錯。
    一定要注意區分字母的大小寫。
    請再檢查一遍。
    然后請再檢查一遍。
    不要煩躁,一定要像對待初戀情人一樣對待它,不然會死的很難堪!
    一定要好好檢查。
    這個MVC中的C很要命的,流程控制全靠它了,一定要小心呵護的。[:D]
    還有,記得修改完畢后重新啟動Apache Tomcat。

    *3*

    我在網上看到有人對這個問題說“試了千百回,改了千百次,就是不知道什么原因”。
    如果你也恰好和struts是初戀,也恰好試了千百回,改了千百次,
    “Cannot find ActionMappings or ActionFormBeans collection”的錯誤仍然濤聲依舊,
    那么,請不要灰心,
    相信我,勝利的喜悅你馬上就能體會到!

    因為,這里有一個畢殺絕技!!!!!

    請按照如下操作:

    打開TOMAT_HOME\conf\server.xml文件,找到在上面提到過的加入WEB應用的那一行:

    ? <Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true"/>

    然后對其修改成為:

    ? <Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true" privileged="true"/>

    這樣就加上一個參數:privileged="true",這個參數是至關重要的。
    (我花N多時間找了N多帖子問了N個人才搞定的,可見struts的初戀有多辛苦了!! [:(])
    ?
    然后重新啟動Apache Tomcat,這樣訪問JSP頁面就沒有問題了。[:D]
    ?
    *4*

    我在網上查找了一些struts應用的配置說明資料,一些配置資料上只提到把struts.jar這個文件copy到\WEB-INF\lib\中,
    而并沒有說需要把sturts的全部*.jar文件進行copy。
    上面提到過,struts.jar包含了struts中的所有Java類。故我有此一試。
    (當然,如果連struts.jar都沒有了,那就沒有搞頭了。[:(] )

    我只把struts.jar文件copy到\StrutsWeb\WEB-INF\lib\中,然后啟動Apache Tomcat(當然,web.xml和struts-config.xml已經配置完畢)。
    一試,果然不爽。

    訪問JSP頁面時,看到提示錯誤:

    ? “org.apache.jasper.JasperException: Cannot find ActionMappings or ActionFormBeans collection”

    傻眼了。

    又折騰了半天,發現上面提到的privileged="true"在這種情況下也可以發揮作用,
    即修改server.xml文件,在<Context>的描述中加上參數privileged="true",使之變成這樣:

    ? ?<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true" privileged="true"/>

    這樣就可以訪問JSP頁面并且運行無誤,沒有錯誤提示了。[^ō^]

    所以可以得出這樣一個東東:
    ? ?如果在\StrutsWeb\WEB-INF\lib\中只有一個struts.jar而沒有其他的*.jar文件,那么,在server.xml文件 中把相對的WEB應用的描述進行修改,在其中加入privileged="true"參數,就可以使struts項目的應用正常運行且訪問無誤。



    二、Win2k + JDK1.4 + Apache Tomcat 5.0.13 + jakarta-struts-1.1 環境

    用Tomcat5作為JSP的容器,上述問題在struts中也會經常遇到,解決方法也都大致相同,privileged="true"對Tomcat5也同樣有效。[:D]

    下面主要說一下不同的地方。

    平時對Apache Tomcat沒有仔細研究,這次發現了幾點,簡略記錄一下。

    *1*

    與Apache Tomcat4比較,Apache Tomcat5在其conf文件夾中增加了Catalina目錄及子目錄,其詳細路徑為:TOMCAT_HOME\conf\Catalina\ localhost\,在localhost文件夾中全部是*.xml文件。
    每個*.xml文件對應一個Tomcat的WEB應用的名字。

    localhost文件夾中,Apache Tomcat5自動生成的有兩個文件,即admin.xml和manager.xml文件。

    當Apache Tomcat5啟動后,就可以這樣訪問了:

    ? http://127.0.0.1:8080/admin/
    ? http://127.0.0.1:8080/manager/

    其中,訪問http://127.0.0.1:8080/admin/ ,通過用戶名和密碼的驗證后,就可以進入Tomcat的WEB服務管理器(TOMCAT WEB SERVER ADMINISTRATION TOOL)了。

    *2*

    在Tomcat4中新增一個WEB應用項目的訪問,是在TOMAT_HOME\conf\server.xml文件中增加一個<Context>描述,在server.xml中找到如下行:

    ? <!-- Tomcat Root Context -->
    ? <!--
    ? ? ? <Context path="" docBase="ROOT" debug="0"/>
    ? -->

    然后在其下面加上這句:

    ? <Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true"/>

    保存server.xml后重新啟動Apache Tomcat4,就可以通過http://127.0.0.1:8080/mystruts/ 來訪問這個WEB應用了。

    在Tomcat5中同樣的也可以這么做。

    同樣的,在TOMAT_HOME\conf\server.xml文件中增加一個<Context>描述,重新啟動Tomcat服務后就可以用來訪問了。

    需 要特別指出的是,當在在Tomcat5的server.xml文件中增加一個<Context>描述后,重新啟動Tomcat時,會自動在 TOMCAT_HOME\conf\Catalina\localhost\路徑下生成一個xml文件,這個xml文件的名稱和< Context>描述中所寫的WEB應用的名字是一樣的。
    如果server.xml文件中的這個<Context>描述有所改動的話(增加屬性或修改屬性),重新啟動Tomcat時,這些改動變化都會及時的反映在同名的xml文件中(這樣就做到了同步一致)。

    例如上面在server.xml中所寫的
    <Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true"/>

    當Tomcat5啟動后,會在\Catalina\localhost\下生成一個名字為“mystruts.xml”的文件。
    其內容和server.xml中所寫的一樣,為:

    <Context docBase="TOMCAT_HOME/webapps/ROOT/StrutsWeb" path="/mystruts" reloadable="true">
    </Context>

    所 以,我們可以這樣說:如果要在Apache Tomcat5中新增WEB應用服務的話,就可以直接在TOMCAT_HOME\conf\Catalina\localhost\路徑下編輯生成一個 xml文件,在這個xml文件中寫上相對應的<Context>描述即可,而不需要在server.xml中增加或編輯其他東東了。 [^ō^]


    *3*

    另外,需要說明的是,Apache Tomcat正常安裝后的啟動方式有多個:

    ? ?** 可以在TOMCAT_HOME\bin\中點擊startup.bat來啟動Tomcat服務。

    ? ?** 可以在“開始”-->“程序”-->“Apache Tomcat”菜單中點擊“Start Tomcat”來運行Tomcat服務。

    但是,Tomcat4和Tomcat5的服務運行形式是不一樣的。

    Tomcat4無論從“startup.bat”點擊運行還是從“Start Tomcat”點擊運行,都會出現黑屏白字的命令提示符窗口(類DOS窗口),用來提示說明Tomcat服務的運行情況和一些日志信息。

    Tomcat5 從“startup.bat”點擊運行后,出現的是黑屏白字的命令提示符窗口,而從“Start Tomcat”點擊運行后,服務窗口不會出現,而只會在屏幕的右下方出現一個帶綠色三角的托盤圖標([:D]乍一看,這個圖標和MS SQLSERVER服務管理器的圖標幾乎一模一樣)。


    *4*

    使用Apache Tomcat5做服務,特別需要指出的是,如果在TOMAT_HOME\conf\server.xml文件中增加一個<Context>描述,
    用“startup.bat”方式啟動Tomcat服務時,在命令提示符窗口上會顯示出如下信息(但是不會影響struts的使用)
    ------------------------------
    警告: Error storing config file
    java.io.FileNotFoundException: ..\..\conf\Catalina\localhost\mystruts.xml (系統找
    不到指定的路徑。)
    ------------------------------
    并且\Catalina\localhost\下對應的xml文件不會得到更新。

    從“Start Tomcat”點擊運行Tomcat5服務是不會有這種情況的(這個可以察看Tomcat的日志文件)。


    *5*

    再來關注一下<Context>描述中的參數“privileged="true"”。

    在路徑TOMCAT_HOME\conf\Catalina\localhost\下,找到Apache Tomcat5自動生成的有兩個文件,即admin.xml和manager.xml文件。

    打開xml文件,能分別找到如下內容:
    ------------------------------
    <Context path="/admin" docBase="../server/webapps/admin"
    ? ? ? ? ?debug="0" privileged="true">
    </Context>


    <Context path="/manager" docBase="../server/webapps/manager"
    ? ? ? ? debug="0" privileged="true">
    </Context>
    ------------------------------

    呵呵,看明白了嗎?
    Apache Tomcat5自動生成的xml文件中,對<Context>的描述中,都有一個參數,即privileged="true" 。
    ? ?

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    posts - 51, comments - 17, trackbacks - 0, articles - 0

    Copyright © 笨蛋啊帆

    主站蜘蛛池模板: 亚洲av日韩aⅴ无码色老头 | 韩国18福利视频免费观看| 亚洲国产第一页www| 在线观看免费黄色网址| 国产精品亚洲高清一区二区| 有码人妻在线免费看片| 亚洲精品国产va在线观看蜜芽| 免费无码国产在线观国内自拍中文字幕| 午夜小视频免费观看| 黄人成a动漫片免费网站| 亚洲国产成人乱码精品女人久久久不卡| 亚洲Av无码国产一区二区| 免费va人成视频网站全| eeuss草民免费| 亚洲色欲色欲综合网站| 免费无码A片一区二三区| 亚洲AV无码一区二区乱子仑| 亚洲AV成人精品日韩一区18p| 韩日电影在线播放免费版| 亚洲日本一区二区| 性做久久久久久免费观看| 特级毛片免费播放| 亚洲成人动漫在线| 中文字幕无码免费久久99| 蜜臀亚洲AV无码精品国产午夜.| 亚洲天堂中文字幕在线| 99热在线观看免费| 亚洲精品中文字幕| 亚洲另类激情综合偷自拍图| 114级毛片免费观看| 色五月五月丁香亚洲综合网| 亚洲一区AV无码少妇电影☆| 日本免费网站视频www区| 美美女高清毛片视频黄的一免费| 日韩va亚洲va欧洲va国产| 永久免费av无码不卡在线观看| 五月天婷婷精品免费视频| 亚洲视频在线免费看| 免费一级特黄特色大片在线观看| 99久久久国产精品免费蜜臀| 国产亚洲情侣久久精品|