版权所有:(xiaodaoxiaodao)蓝小刀 [email protected]
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)蓝小刀 [email protected]