这周除了继续思考数据权限模型的建模和实现以外,主要还研究了一下WSRP(Web Service for Remote Portlet)。这个技术主要是采用WebService方法整合其他应用中的远程portlet到自己的Portal应用中去。
首先需要有一个Producer,即提供服务的出处,它分为两种:Simple Producer和Complex Producer,一般的采用Workshop创建Portal项目都是Complex的,而一般的Web Project即只采用Struts或者PageFlow的都是Simple的,其实生成Producer的过程很简单,如果是采用Workshop,则有很简单的菜单,当然即使不是采用Workshop,也就是拷贝几个Jar和生成几个XML文件。但是不管怎么样,都有一个问题就是这个Producer一定要运行在Portal Domain上,否则无法发现这个Producer中的服务(后面会提如何发现)。
接着就是应用Remote Portlet的Consumer。这一步操作也很简单,就是在创建portlet的时候选择类型remote portlet,然后输入producer的WSDL,一般是“[WEB_ERL]/producer?WSDL”,然后点击Retrive就可以发现Producer中的portlet了,之后选择一个portlet就可以创建成功了。
运行门户测试之后发现有两个问题:
1.URL问题,就是原来producer中的URL如果没有采用portal的URL tag或者应用生成URL的话,那么这个URL在consumer中应用就会出现连接错误,比较明显的就是一些图片无法显示。
2.用户身份问题,如果producer中需要用户身份,如果不设置CA和SSO,那么producer无法获取consumer中已经登录的用户。
这两个问题是致命性问题,涉及到对原来应用的修改和需要部署SSO,除此之外,加上需要producer部署在Portal Domain这一限制,当然还有producer和Consumer的风格差异问题,使得WSRP这一技术在当前工作中的应用,看来目前尚存在较大的困难。[@more@]
首先需要有一个Producer,即提供服务的出处,它分为两种:Simple Producer和Complex Producer,一般的采用Workshop创建Portal项目都是Complex的,而一般的Web Project即只采用Struts或者PageFlow的都是Simple的,其实生成Producer的过程很简单,如果是采用Workshop,则有很简单的菜单,当然即使不是采用Workshop,也就是拷贝几个Jar和生成几个XML文件。但是不管怎么样,都有一个问题就是这个Producer一定要运行在Portal Domain上,否则无法发现这个Producer中的服务(后面会提如何发现)。
接着就是应用Remote Portlet的Consumer。这一步操作也很简单,就是在创建portlet的时候选择类型remote portlet,然后输入producer的WSDL,一般是“[WEB_ERL]/producer?WSDL”,然后点击Retrive就可以发现Producer中的portlet了,之后选择一个portlet就可以创建成功了。
运行门户测试之后发现有两个问题:
1.URL问题,就是原来producer中的URL如果没有采用portal的URL tag或者应用生成URL的话,那么这个URL在consumer中应用就会出现连接错误,比较明显的就是一些图片无法显示。
2.用户身份问题,如果producer中需要用户身份,如果不设置CA和SSO,那么producer无法获取consumer中已经登录的用户。
这两个问题是致命性问题,涉及到对原来应用的修改和需要部署SSO,除此之外,加上需要producer部署在Portal Domain这一限制,当然还有producer和Consumer的风格差异问题,使得WSRP这一技术在当前工作中的应用,看来目前尚存在较大的困难。[@more@]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/74133/viewspace-907887/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/74133/viewspace-907887/