kapok

垃圾桶,嘿嘿,我藏的这么深你们还能找到啊,真牛!

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  455 随笔 :: 0 文章 :: 76 评论 :: 0 Trackbacks
 



开发与部署分开

在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: <es:uriContent>
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下增加以下一段
<!--resoule the chinese problem -->
<localization>
<enable>true</enable>
<default-locale language = "en"/>
</localization>

替换header中的图片
如果要替换Portal Header中的图片,方法如下:从sample portal的framework/markup/shell中导入HeaderFooterVisitor.shell,右击desktop,从弹出菜单中选择shell/HeaderFooterVisitor.shell,然后双击Header,生成header.jsp,修改header.jsp即可。如果footer出不来,需要在shell文件中加入:
<netuix:footer>
<netuix:jspContent contentUri="/footer.jsp"/>
</netuix:footer>
然后将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来显示。下面是一个例子:
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr>
<td background="/sampleportal/images/bg.gif" width="100%" align="center"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="320" height="60" hspace="80" align="middle">
<param name="movie" value="/sampleportal/images/test.swf">
<param name="quality" value="high">
<embed src="/sampleportal/images/test.swf" width="100%" height="80" hspace="20" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed></object>
</td>
</tr>
</table>


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

<pz:contentSelector id="nodes" rule="xcj" />
<es:forEachInArray array="<%=nodes%>" id="node" type="com.bea.content.Node" > <ad:render id="node" height="200" width="400"/>
</es:forEachInArray>

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


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

<pz:contentSelector id="nodes" rule="sampleRule" />
<es:forEachInArray array="<%=nodes%>" id="node" type="com.bea.content.Node" >
<cm:getProperty node="<%=node%>" name="filetype" resultId="type" default="doc" />

<%
String fileType=type.toString();
if (fileType.equals("[img]"))
{
String simg = "<img src= ' " + "/Sampleportal/ShowBinary" + node.getPath() + "'>";
out.println(simg);
%>

<%
}

else if(fileType.equals("[doc]"))
{
String simg="<a href='http://localhost:7001/sampleportal/ShowBinary"+node.getPath()+"' target='_blank' >预览下载</a>";
out.println(simg);
}
%>
</es:forEachInArray>

在IE浏览器中直接输入
http://localhost:7001/sampleportal/ShowBinary/BEA+Repository/mynode
可用来检查是否可以正确显示CMS中的内容。Mynode为相应节点的名称。

让WLP81正确处理中文
为了让WLP81能正确处理中文,需要设置下面几个地方。
1. 在web.xml中
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>GBK</param-value>
</context-param>

2. 在weblogic.xml中
<jsp-descriptor>
<jsp-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</jsp-param>
</jsp-descriptor>

3.修改*.portal文件的编码
可在ultraEdit中打开*.portal文件
修改其中的 <portal:directive.page contentType="text/html;charset=UTF-8"/>为
<portal:directive.page contentType="text/html;charset=GBK"/>
如果修改后,有一些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("<br><br>");
}

在WLP81中实现文件上传
可以通过Page Flow实现文件上传. 在JSP中,通过<netui:fileUpload>显示文件上传窗口.
<netui:fileUpload dataSource="{actionForm.file}" size="50" accept="*/*" ></netui:fileUpload>
在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中.

posted on 2005-04-19 15:32 笨笨 阅读(323) 评论(0)  编辑  收藏 所属分类: J2EEALLWeblogic Portal

只有注册用户登录后才能发表评论。


网站导航: