JCMS (Jetspeed Content Management System) 是基於 Jetspeed 2.0 門戶框架的內容管理擴展。本文記錄在 Jetspeed 2.0 Final Release 版本上安裝、配置 JCMS 並將其 Portlet 整合到頁面的完整流程。過程涉及 Maven 建構、Subversion 源碼獲取、數據庫遷移(Derby → MySQL)等環節,耗時較長,需耐心操作。
svn-1.2.3-setup.exe)mysql-connector-java-3.1.12-bin.jar)java -jar Jetspeed2.0-derby-install.jar,指定 Tomcat 安裝路徑(如 C:\tomcat)。https://localhost:8080/jetspeed,預設帳號 admin/admin,登錄後修改密碼。MAVEN_HOME=你的Maven安裝路徑PATH=%PATH%;%MAVEN_HOME%\binC:\Documents and Settings\<你的用戶名> 建立 build.properties,內容見文末附錄。svn checkout https://svn.apache.org/repos/asf/incubator/graffito/ C:\cmsjetspeed
源碼將下載至 C:\cmsjetspeed。
編輯 C:\cmsjetspeed\trunk\jetspeed2-deploy\src\assembly\graffito.xml:
<property name="alias"><value>JetspeedCMS</value></property>
將原 JetspeedDS 改為 JetspeedCMS,對應自定義數據源。
編輯 C:\tomcat\webapps\jetspeed\WEB-INF\assembly\boot\datasource.xml,在原 JetspeedDS Bean 後新增:
<bean class="org.apache.jetspeed.components.rdbms.ojb.ConnectionRepositoryEntry" id="JetspeedCMS">
<property name="jndiName"><value>java:comp/env/jdbc/mycms</value></property>
</bean>
編輯 C:\tomcat\webapps\jetspeed\WEB-INF\web.xml,在現有 jdbc/jetspeed resource-ref 後新增:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mycms</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
編輯 C:\tomcat\conf\context.xml:
<Context antiJARLocking="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/mycms" auth="Container"
maxActive="100" maxIdle="30" maxWait="10000"
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost/graffitotest"
type="javax.sql.DataSource"
password="mysql" username="root" />
</Context>
編輯 C:\tomcat\conf\tomcat-users.xml,新增 manager 角色:
<user password="tomcat" username="tomcat" roles="tomcat,manager" />
mysql-connector-java-3.1.12-bin.jar 放入 C:\tomcat\common\lib。mysql,建立兩個庫:graffitotest、j2。C:\cmsjetspeed\trunk 目錄。maven allClean allBuild,等待 BUILD SUCCESSFUL。maven allDeploy。成功後 WAR 包將生成至 C:\tomcat\webapps\jetspeed\WEB-INF\deploy,Tomcat 啟動時自動展開至 webapps。https://localhost:8080/jetspeed,登錄後左側選單找到「第二個 PSML 頁面」。# 數據庫配置
org.apache.portals.graffito.production.database.url = jdbc:mysql://localhost/graffitotest?useServerPrepStmts=false
org.apache.portals.graffito.production.database.driver = com.mysql.jdbc.Driver
org.apache.portals.graffito.production.database.user = root
org.apache.portals.graffito.production.database.password = mysql
org.apache.portals.graffito.production.jdbc.drivers.path = C:/cmsjetspeed/mysql-connector-java-3.1.12-bin.jar
# Jetspeed 路徑
org.apache.jetspeed.server.home = C:/tomcat
org.apache.jetspeed.deploy.war.dir = ${org.apache.jetspeed.server.home}/webapps/
org.apache.jetspeed.services.autodeployment.user = tomcat
org.apache.jetspeed.services.autodeployment.password = tomcat
org.apache.jetspeed.catalina.version.major = 5.5
# 項目路徑(自行確保目錄存在)
org.apache.jetspeed.project.home = c:/cmsjetspeed/myproject
org.apache.jetspeed.portal.home = ${org.apache.jetspeed.project.home}
注意: 路徑分隔符統一使用正斜槠 /,JDBC 驅動路徑指向實際文件位置。
catalina.out,多數為數據源配置錯誤或 JNDI 名稱不匹配。graffito.xml 中 alias 已改為 JetspeedCMS,且 datasource.xml、web.xml、context.xml 三處 JNDI 名稱一致(jdbc/mycms)。JCMS 安裝過程雖繁瑣,但按步驟操作可成功。後續將另文介紹 JCMS 具體應用開發。如有疑問歡迎聯繫:
baozhengw999@hotmail.combaozhengw@netease.com29803446