我是否可以仅使用应用程序服务器(Tomcat,JBoss等)创建Java Portal(JSR 168/286)?

时间:2015-02-05 03:36:59

标签: java liferay portlet ibm-was jsr286

我想使用Java规范创建一个轻量级门户。我希望能够在不同的应用程序服务器(在本例中为WebSphere,Tomcat和JBoss)中部署相同的门户项目。

我已经检查了像Liferay这样的产品,但我想创建自己的框架和界面,只是嵌入Java Portlets ,而不是使用Liferay的完整框架和界面。

使用IBM WebSphere(不是WebSphere Portal ),我遵循以下指南:

" Exploiting the WebSphere Application Server V6.1 portlet container: Part 1: Introducing the portlet container"

我设法创建了一个简单的JSP嵌入两个简单的portlet。每个portlet项目都与产品无关(与Liferay或Apache Pluto项目相反,其中包括特定于产品的配置文件)。这就是我想要做的。

问题是,如果我尝试在Tomcat或JBoss中运行这些相同的项目,它们就无法运行。正如我之前所说,项目没有任何IBM或WebSphere特定的配置文件。

所以,我的问题是:

  1. 有没有办法在不必添加的情况下使用Java Portlet项目 供应商特定的文件或代码,并将它们添加到任何应用程序服务器?
  2. 我在哪里可以找到指南 创建与应用程序服务器无关的portlet和门户?
  3. 是吗? WebSphere具有portlet容器但其他服务器的情况 别'?吨

2 个答案:

答案 0 :(得分:3)

  
      
  1. 有没有办法使用Java Portlet项目而不必添加特定于供应商的文件或代码,并将它们添加到任何应用程序服务器?
  2.   

没有。像tomcat,jboss等是Servlet容器,运行portlet需要Portlet Container,它实际上是由Liferay等门户提供的。

  
      
  1. 我在哪里可以找到创建与应用程序服务器无关的portlet和门户的准则?
  2.   

JSR specification为您提供指导。这是good link。我再次重复Portlets就像Servlets需要Servlet容器一样,它们需要Portlet容器。但是当你已经拥有像Liferay,IBM等全功能的portlet容器时,这将重新发明轮子,这些容器是根据具有许多附加功能的规范创建的。 Liferay是一个在大多数Application服务器上运行的portlet容器,如果你创建了一个不使用任何特定于供应商的API的portlet,那么它应该在Liferay,IBM等所有不同的门户中运行,只需添加一些配置文件这些都是为了获得额外的用户体验和功能而提供的。

  
      
  1. 是不是WebSphere有一个portlet容器,而其他服务器不是
  2.   

是。 :-)至少你链接的文章清楚地提到它有一个portlet容器:

  

本系列文章介绍了IBM WebSphere Application Server V6.1中可用的JSR 168 portlet容器,并将其用途与WebSphere Portal区分开来。

希望这会有所帮助并让你到达某个地方。

答案 1 :(得分:0)

WebSphere提供了Portlet container开箱即用,因为Java EE规范不需要这样做,其他服务器可能需要添加第三方容器和其他配置来提供portlet。 对于基本portlet,您不需要任何特定于供应商的代码或描述符来在WebSphere中运行它们,就像您测试的那样。

您也可以检查WebSphere Liberty,它是一个轻量级服务器,也支持portlet容器,但不像完整的WebSphere那样具有特色 - Developing portlets in Liberty