论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
Weblogic Portal内容管理的开发经验
 作者:佚名     2007-3-14 16:41:04        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

BEA Weblogic Portal内容管理的几点开发经验
1.BEA Weblogic Portal 8.1内容管理概述
  BEA Weblogic Platform 8.1将所有在门户中显示的内容包括文本、HTML、图形以及多媒体文件等都统一存储在内容库中,称为BEA虚拟内容库(BEA VCR)。所有的内容组织成层次结构,虚拟内容库(VCR)是内容管理系统的顶层节点,接下来是内容库,这些内容库可以是多个BEA内容库、第三方内容库以及用户自定义的内容库。再下面就是层次节点(相当于文件夹)和内容节点(相当于文件)。如下图:

图1 BEA虚拟内容库的层次结构图
BEA内容库在数据库中由CM_开头的5个表组成,其E/R图如下:

图2 BEA内容存储数据库的E/R图
  CM_NODE表存储的是各个节点(包括层次节点和内容节点)的信息及其在整个内容库中的位置。CM_OBJECT_CLASS表示的是各个节点的模式,也就是不同内容类型的定义。各种类型的内容又是由一系列属性来表示的,CM_PROPERTIY_DEFINITION 存储的就是所有内容类型的各种属性的定义。CM_PROPERTY存储的是每一个具体节点所有属性的值。
  BEA Repository是与某个特定的服务器域(Server Domain)相对应的,在配置domain时,BEA Weblogic的服务器域模板就会自动在数据库中生成内容库的各种数据表。通过Workshop开发Portal应用时会自动生成Portal管理程序,通过该管理程序可以直接完成内容类型定义,内容节点的创建、修改以及删除等基本的内容创建和管理功能。而且作为Portal管理的一部分,还可以对内容管理进行委托管理。可以说应用起来,是很方便的,但在企业级Portal的开发中,这些基本的内容管理功能是不够的。BEA还在com.bea.conten.*中提供了一系列API,这些API不仅是BEA实现内容管理的核心,也是用户二次开发的基础。但遗憾的是BEA在这方面的文档相当少,同时Platform 8.1发布时间又不长,因此本文作者在开发国家电子政务试点示范项目绵阳市电子政务门户系统的过程中,通过摸索和实践,积累了几点开发经验,现整理出来,希望能对BEA Platform 8.1开发的同好有所帮助。
2.通过Java类或JSP直接进行内容管理
  在我们的项目中,内容管理是用户使用较频繁的一部分。虽然Workshop为Portal应用自动生成的Portal管理程序中已具有内容管理模块,但是我们发现它却不能很好地满足最终用户的需求,他们需要更加直观和操作便捷、功能简练而又能最大限度地满足日常内容管理要求的Portal内容管理界面。于是,我们按照用户的实际情况对BEA的内容管理进行二次开发,现摘出其主要的开发过程与大家探讨。
  在程序中操作Repository概括起来有以下几个步骤:首先,构造一个RepositoryManager类的实例;接下来,通过分别调用getObjectClassOps()方法和getNodeOps() 方法得到该实例的ObjectClassOps接口和NodeOps接口;然后即可使用接口中相应的方法实现对ObjectClass (类型)或Node(节点)的操作了。
BEA Repository中的目录和内容条目都是以节点的形式来组织的,若是目录管理就调用操作目录节点的方法,若是内容条目管理就调用操作内容节点的方法。下面列举部分程序代码:
//得到ObjectClassOps接口和NodeOps接口
Try {
RepositoryManager rMgr = RepositoryManagerFactory.connect ( );
ObjectClassOps ocOps = rMgr.getObjectClassOps();
NodeOps nOps = rMgr.getNodeOps ( );
}
catch (Exception e) {
……
}
//以’BEA Repository’为根目录,创建自己的子目录
ID RootID = new ID ( "BEA Repository", "" );
String DirNodeName = “dir1”;
Node DirNode = nOps.getNode ( "/BEA Repository/ " + DirNodeName );
if (DirNode == null ){
Try {
DirNode = nOps.createHierarchyNode ( RootID, DirNodeName);
}
catch (Exception e) {
……
}
}
//先取得要添加内容所属Type的ObjectClassID
//假设该Type的名称为”type1”
String typeName = " type1";
ObjectClass[] objectClasses = null;
String CurObjectClassID = null;
try{
objectClasses = ocOps.getObjectClasses();
}
catch(Exception e){
……
}
int i;
for (i=0; iif(objectClasses[ i ].getName().equals( typeName )) break;
}
if(i < objectClasses.length){
CurObjectClassID = objectClasses[ i ].getId().toString();
}
else{
//该类型不存在,另做处理并退出,return
}
//在目录下添加内容条目
/*
*假设 type1共有2个Property, 分别是:
* -----------------“title”(String)
* -----------------“content”(String)
*/
String ContentNodeName = “内容条目1”;
ID DirNodeID = DirNode.getId ( ); //取得父节点的ID
Property [ ] prp = new Property[2];
Value TitileValue = new Value ( “标题” );
Value ContentValue = new Value ( “内容” );
prp [0] = new Property ( “title”, TitleValue );
prp [1] = new Property ( “content”, ContentValue )
try{
nOps.createContentNode (DirNodeID, ContentNodeName, CurObjectClassID, prp );
}
carch(Exception e){
……
}
//删除内容条目
Node ContentNode = nOps.getNode ( "/BEA Repository/ " + ContentNodeName)
if (ContentNode != null ) {
try {
ID ContentNodeID = ContentNode.getId ( );
nOps.deleteNode (ContentNodeID );
}
catch (Exception e) {
……
}
}


1 2 下一页>>

责任编辑:lss
  相关新闻
JSFToolbox--用Dreamweaver开发JSF
WebWork拦截器(Interceptor)使用方法
获得CCIEBS认证,成为IEBS证书持有者有什么利益
允许内部用户使用Outlook Web Access
欧盟同意甲骨文58.5亿美元收购Siebel
反流氓软件走向web2.0 奇虎将判定权移交网民
Web2.0时代的核心应用:Ajax简介
EasyJWeb 关于中文件上传的处理实例
Thinking in AJAX(二) —— WEB设计
MCDBA 数据库设计学习BLOG
MCDBA 数据库设计学习BLOG
欧盟同意甲骨文58.5亿美元收购Siebel
获得CCIEBS认证,成为IEBS证书持有者有什么利益
反流氓软件走向web2.0 奇虎将判定权移交网民
比较 RIFE 与其他 Web Frameworks
EasyJWeb 关于中文件上传的处理实例
Web框架趣谈之Java Web 框架的甜点
Web2.0时代的核心应用:Ajax简介
Thinking in AJAX(二) —— WEB设计
XMLHttpRequest在Web开发利弊
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号