浏览 5239 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-15
解决办法:先Edit Registration,把provider的链接给程一个可用的url链接,然后在deregister,这样速度会快很多。 2: Export Oracle Portal Instance时,provider信息也会被导出来,但是在import时,Oracle Portal会检查要注册的Provider链接信息,如果目标机器跟源机器的Provider源不能够连通,那么导出到provider就不会被注册到目标portal instance上(我们在部署portal时就出现了这个问题,我们在内网开发的,目标机也是vpn内网)。 解决办法:先把portlet部署到目标机上,然后在把本地的provider注册信息都改成目标机的url,再export,在到目标机import,这样provider注册信息就能够被导到目标机器上了。 3:开发Portlet中JS问题,portlet开发不同于普通页面的开发,因为portlet很可能被加入到任意一个portal页,同时一个portlet可能被加入portal页多次,那么在portlet里写javascript时命名就注意防止命名冲突,而且如果是多人协作开发portlet时,js命名尤为重要,要有一个好的命名规则,否则就会出现portlet单个跑都没有问题,但是一放到portal上就出不来了。 解决办法:使用Extjs的命名空间+好的命名规则+PDK-Java的PortletRenderRequestObj.getQualifiedParameter(). 4: 开发Portlet中JS引用库问题,不要在每个portlet中都引用公共JS库文件,例如prototype.js, ext-base.js等等,这样会造成js库重复引用。 解决办法:把JS库应用放到HTML Template里去,在portlet里不包含基础JS库的引用。 5:Ajax跨域提交问题,这个在portal开发中经常出现,因为provider很可能(大多数情况下都不是跟portal server在一台机器上),Ajax跨域请求会出错。 解决办法:创建一个AjaxProxy工程,部署到portal server上,代码详见http://ivanl.iteye.com/blog/47910 这篇blog,在portlet中都通过ajaxProxy来进行Ajax请求调用。 6:Parameter传递,前文提到过portlet打多数情况下都不会跟portal instance在一台机器上,用户请求的又都是portal page,这样在url后面加上参数是无法直接传给portlet的。 解决办法: 6.1: 在portal page上建立参数,用来接受url中的参数。 6.2: 在portlet 的provider.xml里声明输入参数,准备在portlet中使用。 6.3: 在Portal page中的properties->parameters tab中mapping page parameter and portlet parameter. 7: portlet一定是html片段,不能包含<html>,<body>等标签,我见过有人这么加过(暴汗)。 8:整个页面是div+span的梦想,在portal中不能实现,因为每一个region就是一个table,Oracle poral是用table来布局的。 解决办法:别想了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-10-15
呵呵,楼主总结的东西对我很有帮助。请教一个问题。
在 oracel portal 上已经部署了一个 war。 后来该 war 中又新增了几个 porlet,请问怎样增量部署? 或者有没有彻底卸载portlets,或彻底清除已经注册的 provider 的办法? |
|
返回顶楼 | |
发表时间:2007-10-15
lyon_ding 写道 呵呵,楼主总结的东西对我很有帮助。请教一个问题。
在 oracel portal 上已经部署了一个 war。 后来该 war 中又新增了几个 porlet,请问怎样增量部署? 或者有没有彻底卸载portlets,或彻底清除已经注册的 provider 的办法? 1:新增portlet后,redeploy你的war/ear就可以 2:进portal welcome->navigator->provider->registered provider->unregister provider |
|
返回顶楼 | |
发表时间:2007-10-19
严重同意楼主观点,小弟也是开发PORTLET过,你所说的我问题我起初也都发现了并在项目组里制定了开发规范和example代码。
|
|
返回顶楼 | |
发表时间:2007-10-20
今天又碰到了一个portal page传参数问题。
问题描述:我在html template里使用portal tags #PAGE.CUSTOMIZEPAGE#,这个tag会render一个链接,指向本页的personalize page,在personalize page里可以只有设置portlet的布局,增加删除portlet,而不影响其它用户,这个功能很好,但是在返回页面时,原来页面url的参数就不见了。 问题分析:#PAGE.CUSTOMIZEPAGE# render出来的链接回把原页面的链接当成一个参数p_back_url传给personalizepage,但是原页面里带的参数,他就会截去 例如源页面url为http://some.com/portalPage?pageParam=abc p_back_url子会等于http://some.com/portalPage,问号后面的都回被截去,导致在personalize后点击close,原来的页面参数丢失。 解决办法:自己写js,把丢失的页面参数拼在p_back_url后面。 疑问:我觉得这种解决办法不是很好,不知道有没有更好的解决办法? |
|
返回顶楼 | |