在liferay的控制面板上的wsrp是liferay的一个portlet,可以在进入插件安装页面进行安装,安装完后,在tomcat的webapps目录下会出现一个wsrp-portlet文件夹(即liferay安装的portlet)
wsrp的主要功能是在一个远程服务器上生成生产者,在本地生成消费者,即在本地调用远程服务器上的portlet.
一、结合代码分析生产者的制造过程:
1、先连接到生产者显示页面(edit_producer.jsp)此页面显示所有的生产者的列表
2、添加制造商,还是在edit_producer.jsp页面,填写产品名称、左边显示当前的portlet(可以从右边添加)
String[] portletIds = StringUtil.split(BeanParamUtil.getString(wsrpProducer, request, "portletIds"));
Portlet portlet = PortletLocalServiceUtil.getPortletById(company.getCompanyId(), portletId);
右边显示所有的portlet(这些portlet必须要可卸载,还要可以被远程调用即portlet.isRemoteable()为true)
Iterator<Portlet> itr = PortletLocalServiceUtil.getPortlets(company.getCompanyId(), false, false).iterator();
然后通过liferay-ui:input-move-boxes标签在页面上显示。
3、保存,提交制造商执行
WSRPProducerLocalServiceUtil.updateWSRPProducer( com.liferay.wsrp.model.WSRPProducer wsrpProducer);
保存成功后,回到显示页面,这时再点击制造商标题,进入编辑页面,这时可以看到,名称下面多了个url,这个url就是需要调用此远程portlet的消费者需要记住的地址。
二、分析消费者的制造过程
1、进入消费者显示页面
显示、添加名称(修改的或添加的)
<liferay-ui:input-field model="<%= WSRPConsumer.class %>" bean="<%= wsrpConsumer %>" field="name" />
显示、添加url
<c:choose>
<c:when test="<%= wsrpConsumer == null %>">
<liferay-ui:input-field model="<%= WSRPConsumer.class %>" bean="<%= wsrpConsumer %>" field="url" />
</c:when>
<c:otherwise>
<a href="<%= wsrpConsumer.getUrl() %>" target="_blank"><%= wsrpConsumer.getUrl() %></a>
<input name="<portlet:namespace />url" type="hidden" value="<%= wsrpConsumer.getUrl() %>" />
</c:otherwise>
</c:choose>
2、保存消费者
WSRPConsumerLocalServiceUtil.updateWSRPConsumer(
com.liferay.wsrp.model.WSRPConsumer wsrpConsumer)
3、保存后,可以修改消费者的名称,可以管理消费者的portlets(删除一些portlets,因为一个消费者可以包含一个或多个portlets)
4、可以删除消费者
对于wsrp-portlets里面的类的功能作用,下次总结。