版權所有:(xiaodaoxiaodao)藍小刀
??
xiaodaoxiaodao@gmail.com
http://www.tkk7.com/xiaodaoxiaodao/archive/2007/09/23/147529.html
轉載請注明來源/作者
?
?
Alfresco
使用WSF開始WCM的創建
Alfresco WCM Website Framework (WSF)
什么是WSF,它其實算是一個基本的demo,在使用alfresco的WCM創建站點的時候,我們往往需要自己建WEB-INF目錄,建web.xml文件,建lib包,導入一些需要的js文件等等,WSF其實就集成了這些東西(集成在一個war包中),在alfresco中使用
"
bulk import
"
(慢慢往下看,本文中有配圖說明)的功能可以導入這個war包,導入之后在alfresco中就可以正常運行這個WSF應用,這樣一個基本的站點就算搭好了,以后WCM的開發都可以在這個 基礎上繼續開發(就是在里面加一些jsp/shtm/html/jar/java之類的東西,就像開發web應用一樣)。
?
在使用WSF創建站點之前,請確保你已經安裝了
alfresco
和WCM(Web Content Management),具體下載和安裝方法可參考:《Alfresco2.1下載和安裝》和《Alfresco WCM安裝和使用》。
?
關于WSF的安裝和使用在alfresco wiki(具體可參考:《翻譯:Alfresco WCM Website Framework (WSF)》)上也有相關說明,不過外文的東西說的始終不清不楚,下面是我在使用中的安裝過程和遇到的一些問題:
?
1
.
安裝
alfresco
(
alfresco-community-tomcat-2.1.0.zip
)和WCM(
alfresco-community-wcm-2.1.0.zip
),下面簡述安裝方法(詳細安裝方法和問題可參考上面提到的兩篇文章)。
①
下載和安裝alfresco
下載
alfresco-community-tomcat-2.1.0.zip
,下載后解壓到一個目錄,這里解壓到E:\project\alfresco,解壓后可以看到目錄結構如下:
啟動alfresco/alf_start.bat,訪問http://localhost:8080/alfresco/即可看到alfresco登錄界面(默認管理員登陸 用戶名:admin,密碼:admin)。
?
這時可以看到alfresco/tomcat/webapps目錄下的alfresco.war包被解壓為alfresco文件夾。
?
②
下載和安裝WCM
下載
alfresco-community-wcm-2.1.0.zip
,把下載的WCM解壓到這里解壓到alfresco/tomcat/webapps/alfresco目錄下(如上圖所示),解壓后可以看到目錄結構如下:
?
把wcm-bootstrap-context.xml剪切到alfresco/tomcat/shared/classes/alfresco/extension目錄下
?
啟動alfresco/alf_start.bat,訪問http://localhost:8080/alfresco/即可看到alfresco登錄界面(默認管理員登陸 用戶名:admin,密碼:admin),這時WCM已經被加載進alfresco之中了。
?
登陸后發現界面中會增加兩項:
"Company Home"
下增加"Web Projects"
"Company Home""
數據字典"下增加"Web Forms"
?
當我們使用WCM創建一個新的站點時,通過創建"Web Projects"來生成一個web應用,使用"Web Forms"來定義一些web模板,使用這些web模板可以創建相應的頁面。
?
上面所述WCM的安裝過程也可參考
alfresco-community-wcm-2.1.0.zip
包中的README_wcm.txt文件。
?
?
2
.
WSF
的安裝和使用。
①
啟動alfresco和WCM
。
⑴
運行alfresco/alf_start.bat,啟動alfresco。
⑵
alfresco/tomcat/webapps/alfresco/virtual-tomcat/bin
下運行startup.bat(或者運行alfresco/tomcat/webapps/alfresco/virtual_start.bat,和運行startup.bat是一回事),啟動WCM,啟動后才能訪問發布的"Web Projects"。
?
注:
在alfresco中發布的項目都位于alfresco/tomcat/webapps/alfresco/virtual-tomcat/work目錄下。(virtual-tomcat:虛擬tomcat,名字有點嚇人,其實也就是另外一個tomcat,端口是8180)
?
②
導入WSF
在目錄alfresco/tomcat/webapps/alfresco/extras/wcm目錄下,可以看到有一個alfresco-wsf-website.war包,這個war包就是WSF的demo,下面是在alfresco中的導入("
bulk import
"
)過程。
?
⑴
創建"Web Projects"
訪問http://localhost:8080/alfresco/即可看到alfresco登錄界面(默認管理員登陸 用戶名:admin,密碼:admin)。
進入"Company Home"——"Web Projects",在"Create"按鈕上點擊,出現下拉菜單,如下圖:
?
這里創建一個web工程(具體過程參考《Alfresco WCM安裝和使用》),假定叫做wsf-website:
?
⑵
導入("
bulk import
"
)alfresco-wsf-website.war包。
點擊"wsf-website"圖片進入下一步:
?
點擊"My Sandbox"圖片(為什么點擊,因為Staging Sandbox用來正式發布的,My Sandbox才是針對每個開發人員實際開發時的測試沙盒,在測試無誤之后才可以進入Staging Sandbox)進入下一步:
?
點擊"
bulk import
"
導入alfresco-wsf-website.war包,可看到war包被解壓:
?
注:
在"
bulk import
"
war
包過大時可能會上傳不成功,出現下面錯誤:
org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
Caused by:
org.hibernate.exception.GenericJDBCException:
Could not execute JDBC batch update
?
這是因為使用了HSQL數據庫的原因(詳見http://forums.alfresco.com/viewtopic.php?t=7228),最好換成mysql數據庫,具體操作請參考《Alfresco2.1下載和安裝》。
?
⑶
下載SC.xml和NavigationTree.xml。
點擊"Preview Website"按鈕預覽站點,發現依然出錯:
??????
???
這是因為缺少兩個文件:SC.xml和NavigationTree.xml。
SC.xml:
下載地址http://forge.alfresco.com/plugins/scmsvn/viewcvs.php/misc/contrib/grails-test/web-app/content/site-configuration/?root=wsf
?
NavigationTree.xml:
下載地址http://forge.alfresco.com/plugins/scmsvn/viewcvs.php/misc/contrib/grails-test/web-app/content/navigation/?root=wsf
同一地址下還有一個NavigationTree-menu.html,也可以選擇下載(或者不下載的話,點擊"Preview Website"按鈕預覽wsf demo出現的index頁面會提示缺少這個文件,不過index頁面依然可以顯示)下來放在
content/site-configuration
下
?
注:
Alfresco forge
項目在開發的時候始終做不到及時更新(不少開源項目如struts/hibernate等都是這樣,經常出現的問題都是發布包更新了,但是里面的demo始終是舊版本的,所以會出現一些問題),往往CVS上已經有了一些新的代碼,卻沒有及時更新到發布的war包中,實在汗啊,所以有時候要自己從它的開發網站下載一些最新文件手動更新。
?
⑷
上傳SC.xml和NavigationTree.xml。
上傳SC.xml(在界面中進入到
content/site-configuration
下點擊"Add Content"按鈕,然后添加SC.xml文件):
?
上傳NavigationTree.xml(在界面中進入到
content/navigation
下點擊"Add Content"按鈕,然后添加NavigationTree.xml文件):
?
⑸
修改
documents.jsp
文件
點擊"Preview Website"按鈕預覽站點,發現依然出錯:
?
下載
documents.jsp
文件(
views/components
目錄下),你可以直接右鍵另存為,或者點"Edit"圖片按鈕:
?
下載后找到上面出錯信息提示的一行:
http://localhost:8080/alfresco/service/search/keyword?q=${keyword}
修改為:
http://localhost:8080/alfresco/api/service/search/keyword?q=${keyword}
(可參考http://wiki.alfresco.com/wiki/OpenSearch#Alfresco_Keyword_Search和http://forums.alfresco.com/search.php?search_author=steuni&sid=7c0780b773d9a7763bee1f69d85736d3)
?
修改后更新到
views/components
目錄下(點"Update"圖片按鈕):
?
⑹
點擊"Preview Website"按鈕預覽"wsf-website"站點,發現站點預覽成功。
預覽成功后實際上還是會有一些小問題,這還是因為alfresco forge上的文件我們還沒有拿全的原因,這里僅僅為了把demo運行起來看一下,大可以不往下繼續追究了,畢竟現在建立的wsf已經可以運行,我們就可以在此基礎上修改web.xml的index指向,建自己的"Web Projects"和"Web Forms",然后一步步開發WCM了。
?
注1:
上面我們只是把它發布到了My Sandbox上,要正式發布還需要提交到Staging Sandbox上,如何提交請參考《Alfresco WCM安裝和使用》。
?
注2:
大家可以把上面的alfresco-wsf-website.war包,和下面的兩個目錄對比一下alfresco\tomcat\webapps\alfresco\extras\wcm\contentmodels(XSD)和alfresco\tomcat\webapps\alfresco\extras\wcm\templates(XSL)
可以看到alfresco-wsf-website.war/content:
?
alfresco\tomcat\webapps\alfresco\extras\wcm\contentmodels
(XSD)和alfresco\tomcat\webapps\alfresco\extras\wcm\templates(XSL):
比較一下上面的目錄結構,在使用
WCM
創建
"Web Forms"
和在"Web Projects"通過"Add content"創建
頁面時,我們可以使用
alfresco\tomcat\webapps\alfresco\extras\wcm\contentmodels
(XSD)和alfresco\tomcat\webapps\alfresco\extras\wcm\templates(XSL)
下的一些預定義
XSD+XSL
。
?
?
附1:
在使用WCM創建站點時,我們可能希望生成shtml文件,而alfresco-wsf-website.war/
WEB-INF
的web.xml文件默認已經支持SSI Servlet(且alfresco/tomcat/webapps/alfresco/virtual-tomcat/server/lib下的servlets-ssi.jar默認可以正常使用[原tomcat的servlets-ssi.jar包沒有開啟,名字為servlets-ssi.renametojar])。
?
啟動alfresco(alfresco/alf_start.bat)和WCM(alfresco/tomcat/webapps/alfresco/virtual-tomcat/bin/startup.bat)時,可以看到使用的tomcat和virtual-tomcat版本都是5.5.23(alfresco2.1)的。
?
最新版本的tomcat5.5.x版本只支持JDK1.5以上版本(http://apache.mirror.phpchina.com/tomcat/tomcat-5/v5.5.25/README.html),要支持JDK1.4,必須安裝兼容包。
而tomcat6.0x只支持JDK1.5(http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.14/README.html)以上版本。
?
附2:
在Preview *.shtml的時候會出現不識別文件的情況(就是默認不會按shtml訪問,而是彈出一個提示下載的對話框),解決辦法是在web.xml文件中加入:
???
<mime-mapping>
??????? <extension>shtm</extension>
??????? <mime-type>text/x-server-parsed-html;charset=UTF-8</mime-type>
??? </mime-mapping>
??? <mime-mapping>
??????? <extension>shtml</extension>
??????? <mime-type>text/x-server-parsed-html;charset=UTF-8</mime-type>
??? </mime-mapping>
然后上傳到"wsf-website"工程相應目錄中,重新啟動virtual-tomcat即可。
因為alfresco代碼使用的是utf8格式,所以上面使用charset=UTF-8以保證生成shtml文件國際化。
?
SSI
的詳細說明文檔請參考apache網站:http://tomcat.apache.org/tomcat-5.5-doc/ssi-howto.html
?
?
Alfresco
使用
WSF
開始
WCM
的創建
.pdf
下載地址:
Alfresco
使用
WSF
開始
WCM
的創建
.rar
?
?
版權所有:(xiaodaoxiaodao)藍小刀
??
xiaodaoxiaodao@gmail.com
?