电竞比分网-中国电竞赛事及体育赛事平台

分享

實(shí)現(xiàn)Jetspeed2的PSML數(shù)據(jù)庫(kù)存儲(chǔ)-Focus中國(guó)軟件-搜狐博客

 zengdongping 2008-01-28

2007-07-06 | 實(shí)現(xiàn)Jetspeed2的PSML數(shù)據(jù)庫(kù)存儲(chǔ)

標(biāo)簽: Jetspeed2  PSML 

Jetspeed2的PSML(Page Structure Markup Language)支持XML和數(shù)據(jù)庫(kù)存儲(chǔ)兩種模式,系統(tǒng)缺省采用XML方式,但當(dāng)系統(tǒng)中PSML數(shù)量太大是,采用XML的模式顯然有點(diǎn)不合適,這個(gè)時(shí)候可以采用數(shù)據(jù)庫(kù)模式。

需要做的工作有:

1、修改Spring Bean的配置

  • 打開文件jetspeed\WEB-INF\assembly\page-manager.xml
  • 將bean-id為org.apache.jetspeed.page.PageManager的bean配置刪除
  • 將一下代碼添加進(jìn)去

  <!-- Page Manager -->
  <bean id="org.apache.jetspeed.page.PageManagerImpl"
        name="pageManagerImpl"
        init-method="init"
        class="org.apache.jetspeed.page.impl.DatabasePageManager">
      <!-- OJB configuration file resource path -->
      <constructor-arg index="0"><value>JETSPEED-INF/ojb/page-manager-repository.xml</value></constructor-arg>      
      <!-- folder/page/link cache size, default=128, min=128 -->
      <constructor-arg index="1"><value>128</value></constructor-arg>
      <!-- folder/page/link cache expires seconds, default=150, infinite=0, min=30 -->
      <constructor-arg index="2"><value>30</value></constructor-arg>
      <!-- permissions security enabled flag, default=false -->
      <constructor-arg index="3"><value>false</value></constructor-arg>
      <!-- constraints security enabled flag, default=true -->
      <constructor-arg index="4"><value>true</value></constructor-arg>
  </bean>

  <!-- Transaction Proxying -->
  <bean id="org.apache.jetspeed.page.PageManager" name="pageManager" parent="baseTransactionProxy">
      <property name="proxyInterfaces">
          <value>org.apache.jetspeed.page.PageManager</value>
      </property>
      <property name="target">
          <ref bean="pageManagerImpl" />
      </property>
  </bean>

2、啟動(dòng)Server,系統(tǒng)原有目錄jetspeed\WEB-INF\pages下的PSML不再生效,hahaha...

當(dāng)你輸入http://127.0.0.1:8080/jetspeed 的時(shí)候,頁(yè)面給你的提示卻是“ROOT Folder No Found”,是不是哪里沒有配置好?不是的,配置是正確的,系統(tǒng)運(yùn)行也是正常的,原因是你沒有把系統(tǒng)初始的PSML導(dǎo)入到你的數(shù)據(jù)庫(kù)中,你可以打開數(shù)據(jù)庫(kù),表page是空的,沒有任何數(shù)據(jù),當(dāng)然給你錯(cuò)誤了,那怎么辦呢,怎么接著往下看:

3、講系統(tǒng)初始PSML導(dǎo)入到數(shù)據(jù)庫(kù)

jetspeed提供PSML的XML與數(shù)據(jù)庫(kù)互轉(zhuǎn)的工具,我這里指講解從XML到數(shù)據(jù)庫(kù)的過程:

  • jetspeed提供了一個(gè)類org.apache.jetspeed.page.PageImporter,并提供了main方法,你只要運(yùn)行它既可,運(yùn)行前,現(xiàn)把一下這些文件放到你的classpath下

  • 修改配置文件import-page-manager.xml,將PsmlDocumentHandler、LinkDocumentHandler、FolderMetaDataDocumentHandler、PageSecurityDocumentHandler、FolderHandler這些Bean的構(gòu)造參數(shù)中“pages路徑”指向你真實(shí)的路徑下
  • 修改配置文件repository-datasource-spring.xml,配置你的數(shù)據(jù)源
  • 運(yùn)行PageImporter,會(huì)提示已經(jīng)導(dǎo)入的Folder以及Page等信息

4、啟動(dòng)Server,訪問http://127.0.0.1:8080/jetspeed,你可以看到與XML同樣的效果。

 

附錄

與數(shù)據(jù)庫(kù)存儲(chǔ)PSML相關(guān)的表

  1. folder 文件夾,對(duì)應(yīng)于pages下面的各個(gè)文件夾
  2. folder_constraint 文件夾權(quán)限,對(duì)應(yīng)于folder.metadata的security-constraints owner
  3. folder_constraint_ref 文件夾訪問權(quán)限,對(duì)應(yīng)于folder.metadata的security-constraints security-constraints-ref
  4. folder_metadata 文件夾的元數(shù)據(jù),常用于文件夾名稱的國(guó)際化
  5. folder_menu 文件夾的菜單,對(duì)應(yīng)于folder.metadata的menu
  6. folder_menu_metadata 菜單的元數(shù)據(jù),常用于菜單名稱的國(guó)際化
  7. page頁(yè) 面表,即PSML
  8. fragment 頁(yè)面的Portlet-entity表
  9. link 鏈接表

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多