版权所有:(xiaodaoxiaodao)蓝小刀
xiaodaoxiaodao@gmail.com
http://www.blogjava.net/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