Java, Only Java!

          統(tǒng)計(jì)

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評論排行榜

          Struts的例子在Apusic V5.1上的部署記錄

          目標(biāo):
          將Struts提供的例子部署到Apusic V5.1上,并且可以正確運(yùn)行。
          因?yàn)镾truts 1.x與Struts 2.x有較大區(qū)別,因此本文對兩個(gè)版本的例子都進(jìn)行了部署。

          術(shù)語:
          Struts:使用最為廣泛的MVC框架。
          Apusic:完全支持J2EE規(guī)范的商業(yè)應(yīng)用服務(wù)器產(chǎn)品,最新版本V5.1可以提供對Java EE 5.0的完整實(shí)現(xiàn)。
          %APUSIC_HOME%:Apusic安裝目錄

          準(zhǔn)備:
          http://archive.apache.org/dist/struts/binaries/struts-2.0.9-all.zip下載Struts V2.0.9的壓縮包;
          http://archive.apache.org/dist/struts/binaries/struts-1.3.9-all.zip下載Struts V1.3.9的壓縮包;
          http://java.sun.com/javase/downloads/index_jdk5.jsp下載JDK V1.5以上的版本并安裝,確認(rèn)JAVA_HOME正確指向裝好的JDK目錄;
          http://www.apusic.com/dist/apusicAS/v5.1/Apusic-5.1-OS-Independent.zip下載Apusic V5.1并解壓;

          Struts 2.x的部署過程:
          1. 執(zhí)行%APUSIC_HOME%/domains/mydomain/bin/startapusic.cmd,訪問主頁:http://localhost:6888/,確認(rèn)Apusic已經(jīng)成功安裝;
          2. 打開Struts V2.0.9的例子包,如果下載的是完整的Struts則在APP目錄下;
          3. 將struts2-blank-2.0.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署完成,用http://localhost:6888/struts2-blank-2.0.9/訪問一下,已經(jīng)OK了。(好棒好簡單。。。)
          4. 將struts2-mailreader-2.0.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署完成,用
          http://localhost:6888/struts2-mailreader-2.0.9/訪問一下,已經(jīng)OK了。(好棒好簡單。。。)
          5. 將struts2-showcase-2.0.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),不會那么沒創(chuàng)意吧,又成功啦?自動部署完成,但是后臺部署過程報(bào)錯(cuò):
          javax.servlet.ServletException: java.lang.IllegalStateException: Application was not properly initialized at startup, co
          uld not find Factory: javax.faces.context.FacesContextFactory
          這個(gè)錯(cuò)誤是跟JSF有關(guān)的,原因現(xiàn)在搞不懂,不管他。先用http://localhost:6888/struts2-showcase-2.0.9/訪問一下,好像沒啥問題,進(jìn)入主頁一看例子提供了不少使用Struts的方法很值得學(xué)習(xí),一一點(diǎn)過都很正常,而且還看到了JavaServer Faces,看樣子Struts也在追趕潮流啦,點(diǎn)進(jìn)去→再點(diǎn)List available Employees (http://localhost:6888/struts2-showcase-2.0.9/jsf/employee/list.action)出錯(cuò)啦,去Apusic的后臺看看。又有新的錯(cuò)誤信息:
          Unable to initialize jsf interceptors probably due missing JSF implementation libraries,說我沒有提供實(shí)現(xiàn)庫。不可能呀,Apusic已經(jīng)提供了Operamasks的JSF實(shí)現(xiàn)呀,不過Struts肯定不會用Operamasks的,那是不是自帶的JSF實(shí)現(xiàn)呢?打開WAR包進(jìn)入WEB-INF/lib發(fā)現(xiàn)里面還有MyFaces的實(shí)現(xiàn)庫。估計(jì)是兩種JSF實(shí)現(xiàn)沖突了。看樣子要?jiǎng)狱c(diǎn)腦筋了!
          整個(gè)簡單的辦法,把Apusic的所有與JSF相關(guān)的JAR包都刪除掉,讓Apusic V5.1變成一個(gè)純的WEB容器。與JSF相關(guān)的有三個(gè)文件:
          ● jsf-api.jar:%APUSIC_HOME%/common
          Operamasks-impl.jar:%APUSIC_HOME%/lib
          Operamasks-third-party.jar:%APUSIC_HOME%/lib/ext
          停止應(yīng)用服務(wù)器,把他們都刪除掉,再重新啟動后訪問struts2-showcase-2.0.9.war的JSF例子,這下就行了。
          7. 將struts2-portlet-2.0.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署也報(bào)錯(cuò):
          Could not load class org.apache.struts2.portlet.interceptor.PortletPreferencesInterceptor.看樣子還需要加入Portal服務(wù)器才行,在網(wǎng)上搜了一下沒有部署介紹,而且也說需要先部署好PortalServer支持,難度不小。嘗試下了Pluto但是部署了沒起作用,后來下了2.1.2版本,結(jié)果那個(gè)例子更成問題,只好先放棄。等到熟悉了Portal再回頭補(bǔ)課。

          Struts 1.x的部署過程:
          1. 執(zhí)行%APUSIC_HOME%/domains/mydomain/bin/startapusic.cmd,訪問主頁:http://localhost:6888/,確認(rèn)Apusic已經(jīng)成功安裝;
          2. 打開Struts V1.3.9的例子包,如果下載的是完整的Struts則在apps目錄下;
          3. 將struts-blank-1.3.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署完成,用http://localhost:6888/struts-blank-1.3.9/訪問一下,已經(jīng)OK了;
          4. 將struts-cookbook-1.3.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署完成,用http://localhost:6888/struts-cookbook-1.3.9/訪問一下,已經(jīng)OK了,訪問里面的內(nèi)容也可以正確執(zhí)行;
          5. 將struts-el-example-1.3.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署完成,用http://localhost:6888/struts-el-example-1.3.9/訪問一下,已經(jīng)OK了,訪問里面的內(nèi)容也可以正確執(zhí)行;
          6. 將struts-examples-1.3.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署完成,用http://localhost:6888/struts-examples-1.3.9/訪問一下,已經(jīng)OK了,訪問里面的內(nèi)容也可以正確執(zhí)行(這個(gè)例子其實(shí)是上面三個(gè)例子的集成);
          7. 下面的兩個(gè)例子都與myfaces有關(guān),為了防止JSF實(shí)現(xiàn)沖突,先停止服務(wù)器,將Apusic的JSF實(shí)現(xiàn)刪除(參考Struts 2.x中的6);
          8. 將struts-faces-example1-1.3.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署完成,用http://localhost:6888/struts-faces-example1-1.3.9/訪問一下,已經(jīng)OK了,訪問里面的內(nèi)容也可以正確執(zhí)行;
          9. 將struts-faces-example2-1.3.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署完成,用http://localhost:6888/struts-faces-example2-1.3.9/訪問一下,已經(jīng)OK了,訪問里面的內(nèi)容也可以正確執(zhí)行;
          10. 將struts-mailreader-1.3.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署完成,用http://localhost:6888/struts-mailreader-1.3.9/訪問一下,已經(jīng)OK了(注意:我下載的這個(gè)例子圖片無法正常顯示,打開應(yīng)用發(fā)現(xiàn)根本沒有把圖片文件打入WAR包),訪問里面的內(nèi)容也可以正確執(zhí)行;
          11. 將struts-scripting-mailreader-1.3.9.war拖入%APUSIC_HOME%/domains/mydomain/applications目錄下(稍等一下),自動部署完成,用http://localhost:6888/struts-scripting-mailreader-1.3.9/訪問一下,已經(jīng)OK了(注意:我下載的這個(gè)例子圖片無法正常顯示,打開應(yīng)用發(fā)現(xiàn)根本沒有把圖片文件打入WAR包),訪問里面的內(nèi)容也可以正確執(zhí)行。

          備注:
          1. 刪除了Operamasks的實(shí)現(xiàn)包,如果別的應(yīng)用仍然想用Operamasks,最好的辦法就是直接把這三個(gè)包加入到應(yīng)用的WEB-INF/lib下面就可以了。

          posted on 2008-07-10 22:55 zYx.Tom 閱讀(1193) 評論(2)  編輯  收藏 所屬分類: 1.Java世界

          評論

          # re: Struts的例子在Apusic V5.1上的部署記錄[未登錄] 2008-07-11 07:43 javaread.com

          布局有點(diǎn)亂,看的辛苦  回復(fù)  更多評論   

          # re: Struts的例子在Apusic V5.1上的部署記錄 2008-07-14 12:37 朱遠(yuǎn)翔-Apusic技術(shù)顧問

          @javaread.com
          不好意思,改過了。  回復(fù)  更多評論   

          主站蜘蛛池模板: 孙吴县| 阿巴嘎旗| 库伦旗| 讷河市| 阿尔山市| 普格县| 金华市| 收藏| 南乐县| 正定县| 塔河县| 岱山县| 青冈县| 辽宁省| 忻城县| 丹江口市| 城口县| 南充市| 商城县| 吉林市| 乌拉特后旗| 古蔺县| 沾化县| 新安县| 游戏| 连平县| 高邑县| 淮阳县| 南投县| 宁阳县| 香河县| 延津县| 阿瓦提县| 株洲县| 玉树县| 张北县| 青田县| 吉首市| 开阳县| 和硕县| 江川县|