分享

Alfresco使用WSF开始WCM的创建

 大漠孤狼2 2011-08-23

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./viewtopic.php?t=7228),最好换成mysql数据库,具体操作请参考《Alfresco2.1下载和安装》。
⑶ 下载SC.xml和NavigationTree.xml。

点击"Preview Website"按钮预览站点,发现依然出错: 

这是因为缺少两个文件:SC.xml和NavigationTree.xml。

SC.xml: 下载地址
http://forge./plugins/scmsvn/viewcvs.php/misc/contrib/grails-test/web-app/content/site-configuration/?root=wsf

 

NavigationTree.xml: 下载地址
http://forge./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./wiki/OpenSearch#Alfresco_Keyword_Search和http://forums./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:

lfresco\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./tomcat/tomcat-5/v5.5.25/README.html),要支持JDK1.4,必须安装兼容包。

而tomcat6.0x只支持JDK1.5(
http://apache.mirror./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./tomcat-5.5-doc/ssi-howto.html

(责任编辑:admin)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多