版权所有:(xiaodaoxiaodao)蓝小刀    [email protected]

http://www.blogjava.net/xiaodaoxiaodao/archive/2007/09/23/147529.html

转载请注明来源/作者

 

 

Alfresco 使用WSF开始WCM的创建

Alfresco WCM Website Framework (WSF)

什么是WSF,它其实算是一个基本的demo,在使用alfrescoWCM创建站点的时候,我们往往需要自己建WEB-INF目录,建web.xml文件,建lib包,导入一些需要的js文件等等,WSF其实就集成了这些东西(集成在一个war包中),在alfresco中使用 " bulk import " (慢慢往下看,本文中有配图说明)的功能可以导入这个war包,导入之后在alfresco中就可以正常运行这个WSF应用,这样一个基本的站点就算搭好了,以后WCM的开发都可以在这个 基础上继续开发(就是在里面加一些jsp/shtm/html/jar/java之类的东西,就像开发web应用一样)。

 

在使用WSF创建站点之前,请确保你已经安装了 alfresco WCMWeb 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.JPG启动alfresco/alf_start.bat,访问http://localhost:8080/alfresco/即可看到alfresco登录界面(默认管理员登陆 用户名:admin,密码:admin)。

 

这时可以看到alfresco/tomcat/webapps目录下的alfresco.war包被解压为alfresco文件夹。

alfresco2.JPG 

下载和安装WCM

下载 alfresco-community-wcm-2.1.0.zip ,把下载的WCM解压到这里解压到alfresco/tomcat/webapps/alfresco目录下(如上图所示),解压后可以看到目录结构如下:

alfresco_wcm.JPG 

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 的安装和使用。

启动alfrescoWCM

运行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包就是WSFdemo,下面是在alfresco中的导入(" bulk import " )过程。

 

创建"Web Projects"

访问http://localhost:8080/alfresco/即可看到alfresco登录界面(默认管理员登陆 用户名:admin,密码:admin)。

进入"Company Home"——"Web Projects",在"Create"按钮上点击,出现下拉菜单,如下图:

alfresco_webproject_create1.JPG 

这里创建一个web工程(具体过程参考《Alfresco WCM安装和使用》),假定叫做wsf-website

alfresco_webproject_create2.JPG 

导入(" bulk import " alfresco-wsf-website.war包。

点击"wsf-website"图片进入下一步:

alfresco_wsf_import1.JPG 

点击"My Sandbox"图片(为什么点击,因为Staging Sandbox用来正式发布的,My Sandbox才是针对每个开发人员实际开发时的测试沙盒,在测试无误之后才可以进入Staging Sandbox)进入下一步:

alfresco_wsf_import2.JPG 

点击" bulk import " 导入alfresco-wsf-website.war包,可看到war包被解压:

alfresco_wsf_import3.JPG 

注: " 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.xmlNavigationTree.xml

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

alfresco_wsf_error.JPG      
   

这是因为缺少两个文件:SC.xmlNavigationTree.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.xmlNavigationTree.xml

上传SC.xml(在界面中进入到 content/site-configuration 下点击"Add Content"按钮,然后添加SC.xml文件):

alfresco_wsf_import4.JPG 

上传NavigationTree.xml(在界面中进入到 content/navigation 下点击"Add Content"按钮,然后添加NavigationTree.xml文件):

alfresco_wsf_import5.JPG 

修改 documents.jsp 文件

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

alfresco_wsf_error.JPG 

下载 documents.jsp 文件( views/components 目录下),你可以直接右键另存为,或者点"Edit"图片按钮:

alfresco_wsf_import6.JPG 

下载后找到上面出错信息提示的一行:

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_Searchhttp://forums.alfresco.com/search.php?search_author=steuni&sid=7c0780b773d9a7763bee1f69d85736d3

 

修改后更新到 views/components 目录下(点"Update"图片按钮):

alfresco_wsf_import7.JPG 

点击"Preview Website"按钮预览"wsf-website"站点,发现站点预览成功。

alfresco_wsf_import8.JPG预览成功后实际上还是会有一些小问题,这还是因为alfresco forge上的文件我们还没有拿全的原因,这里仅仅为了把demo运行起来看一下,大可以不往下继续追究了,毕竟现在建立的wsf已经可以运行,我们就可以在此基础上修改web.xmlindex指向,建自己的"Web Projects""Web Forms",然后一步步开发WCM了。

 

1 上面我们只是把它发布到了My Sandbox上,要正式发布还需要提交到Staging Sandbox上,如何提交请参考《Alfresco WCM安装和使用》

 

2 大家可以把上面的alfresco-wsf-website.war包,和下面的两个目录对比一下alfresco\tomcat\webapps\alfresco\extras\wcm\contentmodelsXSD)和alfresco\tomcat\webapps\alfresco\extras\wcm\templatesXSL

可以看到alfresco-wsf-website.war/content

alfresco_wsf_import9.JPG 

alfresco\tomcat\webapps\alfresco\extras\wcm\contentmodels XSD)和alfresco\tomcat\webapps\alfresco\extras\wcm\templatesXSL:

alfresco_wsf_import10.JPG比较一下上面的目录结构,在使用 WCM 创建 "Web Forms" 和在"Web Projects"通过"Add content"创建 页面时,我们可以使用 alfresco\tomcat\webapps\alfresco\extras\wcm\contentmodels XSD)和alfresco\tomcat\webapps\alfresco\extras\wcm\templatesXSL 下的一些预定义 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默认可以正常使用[tomcatservlets-ssi.jar包没有开启,名字为servlets-ssi.renametojar])。

 

启动alfrescoalfresco/alf_start.bat)和WCMalfresco/tomcat/webapps/alfresco/virtual-tomcat/bin/startup.bat)时,可以看到使用的tomcatvirtual-tomcat版本都是 5.5.23alfresco2.1)的。

 

最新版本的tomcat5.5.x版本只支持JDK1.5以上版本(http://apache.mirror.phpchina.com/tomcat/tomcat-5/v5.5.25/README.html,要支持JDK1.4,必须安装兼容包。

tomcat6.0x只支持JDK1.5http://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]