BEA WebLogic Portal 8.1 使用技巧

来源:百度文库 编辑:神马文学网 时间:2024/04/30 05:59:11
开发与部署分开
在WLP81中,可以在WORKSHOP中定义Portal,也可以在Admin Tool中中定义Portal.究竟有怎么区别呢? 原来WLP81与WLP70不一样,建议把应用的开发与最终的发布分开.即在workshop中把应用的所有portlet都开发,调试通过后,然后在WLP81的Admin Tool中定义portal,desktop. 最终发布出去的是在Admin Tool中定义desktop. 最终用户通过访问desktop来访问portal 应用.
如何集成其他Web系统
如果要把其他的基于BS结构开发的Web系统集成到WLP81中,有以下几中方式.
1. Kapow
他是WLP81自带的组件.可以把一个网页的全部或裁剪网页的一部分,在WLP81的portlet中显示出来.
2. 采用WLP81带的JSP Tag:
3. 采用IFRAME
4. 采用Apache web scraping package
如何集成其他CS结构的系统
如果要在WLP81中集成CS结构的系统,个人认为主要有以下几种方式:
1. 在JSP中调用Web Service,Tuxedo Service,DCOM,CORBA等组件
把要集成的部分包装成Web Service,Tuxedo Service,DCOM, CORBA等组件.然后通过在JSP中调用这些组件来把内容在WEB 页面上展示出来.
2. JAVA API
如果这些CS结构的系统有JAVA API.那么可以在JSP中通过调用如果这些CS结构的系统有JAVA API来把中调用这些组件来把内容在WEB 页面上展示出来
3. Citrix公司的MetaFrame Portlet
MetaFrame是Citrix公司所开发的一款解决远程访问相关问题的优秀产品,MetaFrame实现了基于服务器的计算机构---使得远程用户能够使用任何类型的终端系统,通过任何类型的网络连接,使用远程服务器上的任何应用程序。
MetaFrame产品采用了MultiWin和ICA两种主要技术。MultiWin允许多个用户可以同时使用某个应用程序;ICA(Independent Computing Architecture)可以将应用的逻辑与界面分开。这两种技术的结合,使得应用程序可以随时随处发布,不再受客户端和连接性能的限制。
用户甚至能够使用同一个终端系统访问甚至远程多个不同平台、不同网络协议服务器上的多个应用,这些应用被集成在一个访问界面中,操作简便。详细资料参见: http://www.achieva.com.cn/product/citrix/
Portlet的最大化,最小化等图片出不来
如果访问WLP81的Portal应用,无法显示Portlet的最大化,最小化等图片,可通过下面的方法解决:
1. 在%web-app%/framework/skins下增加一个名为zh的文件夹,然后skins目录下原有的文件夹(及所有文件)拷贝至zh文件夹内。
2. 在WEB-INF下面的netuix-config.xml下增加以下一段


true


替换header中的图片
如果要替换Portal Header中的图片,方法如下:从sample portal的framework/markup/shell中导入HeaderFooterVisitor.shell,右击desktop,从弹出菜单中选择shell/HeaderFooterVisitor.shell,然后双击Header,生成header.jsp,修改header.jsp即可。如果footer出不来,需要在shell文件中加入:



然后将shell替换为原来的shell,再替换为新shell就可以。
设置Portal Domain的启动选项
在Portal Domain的启动脚本startweblogic.cmd中,通过设置下面的flag的值,来决定Portal Domain的启动选项。
set DB_DB=workshop
set debugFlag=false
set specialFlag=false
set WLS_PRODUCTION_MODE=true
set testConsoleFlag=true
set iterativeDevFlag=true
set logErrorsToConsoleFlag=true
set pointbaseFlag=true
set profileFlag=false
set doExitFlag=true
set verboseLoggingFlag=false
set memmax=-Xmx512m
关闭portal的搜索引擎
如果你觉的Portal的搜索引擎没怎么用,可以把它关闭,方法如下:在Portal Domain的启动脚本startweblogic.cmd中,在下面的语句前加rem,注释掉。这样可以提高系统的性能。
rem start "Start Portal SearchEngine" /MIN cmd /c
call "%WLP_HOME%\thirdparty\search\startSearchEngine.cmd"
rem start "Stop Portal SearchEngine" /MIN cmd /c
call"%WLP_HOME%\thirdparty\search\stopSearchEngine.cmd"
WLP81对IE的要求
WLP81必须配合IE60才行,如果是IE50,在浏览Portal应用,或进入Portal Admin Tool时,会抛出下面的Exception。可从此处下载IE60:
http://www.microsoft.com/downloads/details.aspx?FamilyID=1e1550cb-5e5d-48f5-b02b-20b602228de6&DisplayLang=en

在WLP81中正确显示FLASH
1.可以通过FLASH PLUG-IN来显示。下面是一个例子:









2.通过WLP81的 Content Manager
把要显示的FLASH放到WLP81 CMS的REPOSITY中,然后通过CONTENT SELECTOR显示。例子如下:



要注意的是: *.SEL文件应放到GlobalContentSelectors目录下,不要放到contentselectors目录下,否则,虽然在Content preview中可以显示,但在运行环境下无法显示.

从WLP81的CMS中取内容并显示
下面的代码通过Content selector从WLP81的CMS中查询满足条件的文件,并在浏览器中显示。如是文件的filetype值是img就直接显示。如是文件的filetype值是doc就显示超联接。



<%
String fileType=type.toString();
if (fileType.equals("[img]"))
{
String simg = "";
out.println(simg);
%>
<%
}
else if(fileType.equals("[doc]"))
{
String simg="预览下载";
out.println(simg);
}
%>

在IE浏览器中直接输入
http://localhost:7001/sampleportal/ShowBinary/BEA+Repository/mynode
可用来检查是否可以正确显示CMS中的内容。Mynode为相应节点的名称。
让WLP81正确处理中文
为了让WLP81能正确处理中文,需要设置下面几个地方。
1. 在web.xml中

weblogic.httpd.inputCharset./*
GBK

2. 在weblogic.xml中


encoding
GBK


3.修改*.portal文件的编码
可在ultraEdit中打开*.portal文件
修改其中的

如果修改后,有一些JSP文件无法打开,可在ultraEdit中打开,把代码COPY 到Workshop 的source View中.
4.修改Workshop的编码

在代码中设置Page,Portlet的属性
在开发时,可以在Workshop的property Editor中设置page, portlet的属性.在代码中可以通过下面的方法设置或取得page, portlet的属性.
try
{
PageBackingContext page =
PageBackingContext.getPageBackingContext(getRequest());
System.out.println("\n\n\n\n\ntitle=[" + page.getTitle()+"]");
title=page.getTitle();
}
catch(Exception e)
{
e.printStackTrace();
}
如果把上面的page替换成portlet就可以得到portlet的属性
使PAGE折行显示
如果一个portal应用的page太多,默认只会显示为一行,太长.可修改文件framework/skeletons/default/singlelevelmenu.jsp,使他可以折行显示.例子如下:
int pageNum=0;
while (pages.hasNext())
{
pageNum++;
if(pageNum %15 ==0)
{
System.out.println("pageNum=" + pageNum);
out.println("

");
}
在WLP81中实现文件上传
可以通过Page Flow实现文件上传. 在JSP中,通过显示文件上传窗口.

在jpf文件中可通过如下方式读取上传的文件,并保存到新的目录下.
try {
if(!form.getFile().equals(""))
{
InputStream is = form.getFile().getInputStream();
String fileName = form.getFile().getFileName();
FileOutputStream os = new FileOutputStream(new File(uploadFolder+fileName));
byte b[] = new byte[128];
while(is.read(b)!=-1){
os.write(b);
}
is.close();
os.close();
}
}
catch(Exception e){
e.printStackTrace();
}
如果有中文问题,可以把该Page Flow 放到Iframe中.
_xyz