| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
在Pluto和Jetspeed相互配合下,通过JetspeedContainerServlet,最终执行控制权会交给Portlet的实现类。JetspeedContainerServlet就定义在Portlet应用程序所属的Web应用单位中,也就是说所有在Jetspeed中运行的 Portlet Web应用都必须在Web.xml中包含JetspeedContainerServlet的定义。在Tomcat中,这是通过deploy-tool组件完成的,在其它应用服务器平台,很可能就要靠应用发布者手动添加了,需添加的信息包含: 网管联盟bitsCN_com
<servlet>
<servlet-name>JetspeedContainer</servlet-name>
<display-name>Jetspeed Container</display-name>
<description>MVC Servlet for Jetspeed Portlet
Applications</description>
<servlet-class>org.apache.jetspeed.container.
JetspeedContainerServlet</servlet-class>
<init-param>
<param-name>contextName</param-name>
<param-value>rss</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JetspeedContainer</servlet-name>
<url-pattern>/container/*</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>http://java.sun.com/portlet</taglib-uri>
<taglib-location>/WEB-INF/tld/portlet.tld</taglib-location>
</taglib>
|
Jetspeed Portlet Extension Service
网管u家bitscn.net
前面介绍了实现架构和运行时架构,接下来我们一起来看看Jetspeed为Portlet应用提供的Jetspeed Service架构。如果了解JSR-168规范的开发者就会知道,这个规范是基于Servlet 2.3规范基础上的一个简单扩展,因此并没有对Portlet开发提供任何特别的支持。因而每家Portal厂商都提供了自己的扩展。 中国网管联盟bitsCN.com
Jetspeed 提供的扩展方式跟很多厂商对Servlet规范的扩展一样,定义了一个名为jetspeed-portlet.xml的文件,作为标准的 portlet.xml的扩展。只要你在打包发布portlet应用时将这个文件与portlet.xml放在一起,Jetspeed的发布程序就会自动读取这个文件,并根据其内容执行一系列的操作。它们的关系如同BEA Weblogic应用服务器里面的weblogic.xml与web.xml;JBoss应用服务器里面的jboss-web.xml与web.xml。 网管论坛bbs_bitsCN_com
下面我们来看看这个文件的格式: 中国网管论坛bbs.bitsCN.com
<portlet-app id="j2-admin" version="1.0"
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
xmlns:js="http://portals.apache.org/jetspeed"
xmlns:dc="http://www.purl.org/dc">
<js:services>
<js:service name="ApplicationServerManager" />
<js:service name="DeploymentManager" />
<js:service name="EntityAccessor" />
<js:service name="GroupManager" />
<js:service name="PageManager" />
<js:service name="PermissionManager" />
<js:service name="PortalAdministration" />
<js:service name="PortletFactory" />
<js:service name="PortalAdministration" />
<js:service name="PortletRegistryComponent" />
<js:service name="PortalStatistics" />
<js:service name="Profiler" />
<js:service name="RoleManager" />
<js:service name="SearchComponent" />
<js:service name="SSO" />
<js:service name="UserManager" />
<js:service name="HeaderResource" />
</js:services>
</portlet-app>
网管联盟bitsCN_com
|
跟据XML Element的名字,可以理解就是提供给j2-admin这个Portlet应用程序使用的一些Services。那么这些Services是怎么定义的呢?以UserManager这个服务为例,首先回到前面提到过的assemble目录下,找到jetspeed-services.xml和 security-managers.xml,下面分别是它们的内容节选:
jetspeed-services.xml
网管u家u.bitscn@com
<beans default-lazy-init="false" default-dependency-check="none" default-autowire="no">
<!--
Portlet Services
-->
<bean id="PortalServices"
class="org.apache.jetspeed.services.JetspeedPortletServices"
abstract="false" singleton="true" lazy-init="default" autowire="default"
dependency-check="default">
<constructor-arg>
<map>
<entry key="SearchComponent">
<ref bean="org.apache.jetspeed.search.SearchEngine" />
</entry>
<entry key="UserManager">
<ref bean="org.apache.jetspeed.security.UserManager" />
</entry>
<entry key="PageManager">
<ref bean="org.apache.jetspeed.page.PageManager" />
</entry>
</map>
</constructor-arg>
</bean>
</beans>
网管u家www.bitscn.net
|
|
1
|
评论加载中…