WSRP调用中的若干问题和解决

1、在soapui里调用远程getMarkup()方法,http头里无法包含cookie信息

解决方法:用soapui把soap消息发送至tcpmon,然后在tcpmon里修改http消息(添加cookie段),再重新发送。

2、安装wtp后eclipse里不出现相应功能

解决方法:安装JEM-SDK,它是wtp的先决条件。其他先决条件还有EMF SDK和GEF SDK。

3、从WSRP的WSDL生成Java代码后,访问getMarkup()方法提示InvalidCookie

解决方法:先访问initCookie()方法,再访问getMarkup()。注意要调用Service#setMaintainSession(true)以保证程序对getMarkup()的调用会在http头里加入了cookie段。

4、Websphere Portal的WSRP的WSDL

解决方法:http://host:3333/wps/wsdl/wsrp_service.wsdl

搬家前链接:https://www.cnblogs.com/bjzhanghao/archive/2007/04/11/709654.html

关于WSRP服务的异步调用

Portal可以将不同的Web应用聚合在同一页面,而Web Services for Remote Portlets (WSRP)规范允许Portal聚合远程Portal Server提供的Portlet,在这种关系下,远程Portal被称为Producer,本地Portal被称为Consumer,最终用户只访问Consumer,并不需要了解Producer的存在。WSRP和普通Web Services比起来更容易使用,因为界面部分已经由Producer提供了,我们只要在Consumer里做一些设置而不是编写JSP代码。

听起来不错,但为此我们也许要付出些代价,其中我想最突出的是性能问题。因为Consumer在向最终用户返回聚合后的页面前,必须等待所有Portlet包括远程Portlet返回结果,这样,只要有一个Portlet响应时间较长,整个页面就变得很慢。在使用WSRP时,用户到Consumer一般是远程访问,而Consumer到Producer也是远程的,这必然带来额外的时间开销。

一个可能的解决方法是在Consumer里异步显示每个Portlet(或仅异步显示那些远程Portlet),AJAX技术听起来是一个不错的选择,lao_lee的这篇文章里曾提到他们有过类似的想法:

05年时我们曾经的一个idea是,把每一个portlet封装为一个web service服务点, (WSRP已经可以作到这一点), 然后改进聚合器,让聚合器首先把页面的框架和js返回,然后每一个portlet通过AJAX请求异步拿到自己的内容. 这里涉及到一个关键问题是URL改写.

我想除了URL改写以外还有些问题必须处理。

搬家前链接:https://www.cnblogs.com/bjzhanghao/archive/2006/12/27/605510.html