繁体   English   中英

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

[英]Can I create a Java Portal (JSR 168/286) using only an application server (Tomcat, JBoss, etc)?

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

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

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

利用WebSphere Application Server V6.1 portlet容器:第1部分:介绍portlet容器

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

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

所以,我的问题是:

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

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

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

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

  1. 是这样的情况下,WebSphere有一个portlet容器,但其他服务器没有?

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

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

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

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

您还可以检查WebSphere Liberty,它是一个轻量级服务器并且还支持portlet容器,但不像完整WebSphere那样具有特色 - 在Liberty中开发portlet

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM