我想使用 Java 规范创建一个轻量级门户。我希望能够在不同的应用程序服务器(在本例中为 WebSphere、Tomcat 和 JBoss)中部署相同的门户项目。
我已经检查过像 Liferay 这样的产品,但是我想创建自己的框架和界面,并且只是嵌入 Java Portlet,而不是使用 Liferay 的完整框架和界面。
使用 IBM WebSphere(不是 WebSphere Portal),我遵循了以下指南:
我设法创建了一个简单的 JSP,其中嵌入了两个简单的 portlet。每个 portlet 项目都是与产品无关的(与 Liferay 或 Apache Pluto 项目相反,它们包括特定于产品的配置文件)。这就是我想要做的。
问题是,如果我尝试在 Tomcat 或 JBoss 中运行这些相同的项目,它们将无法运行。正如我之前所说,这些项目没有任何 IBM 或 WebSphere 特定的配置文件。
所以,我的问题是:
- 有没有一种方法可以使用 Java Portlet 项目而无需添加 特定于供应商的文件或代码,并将它们添加到任何应用程序服务器?
- 我在哪里可以找到指南 创建与应用程序服务器无关的 portlet 和门户?
- 是不是 WebSphere 有一个 Portlet 容器但其他服务器 不?
最佳答案
- Is there a way to use Java Portlet projects without having to add vendor-specific files or code, and add them to any application server?
没有。 tomcat、jboss 等都是 Servlet 容器,要运行 portlet,您需要 Portlet 容器,它实际上由 Liferay 等门户提供。
- Where can I find the guidelines to create application-server-agnostic portlets and portals?
JSR specification给你指南。这是一个 good link为了它。我再次重复 Portlet,就像 Servlet 需要 Servlet 容器一样,它们需要 Portlet 容器。但是,当您已经拥有功能齐全的 Portlet 容器(如 Liferay、IBM 等)时,这将是重新发明轮子,这些容器是根据具有许多附加功能的规范创建的。 Liferay 是一个在大多数应用程序服务器上运行的 portlet 容器,如果您创建一个 portlet 而不使用任何供应商特定的 API,那么它应该在所有不同的门户网站(如 Liferay、IBM 等)中运行,只需添加一些配置文件提供额外的用户体验和功能。
- Is it the case that WebSphere has a portlet container but the other servers don't?
是的。 :-) 至少您链接到的文章清楚地提到它有一个 portlet 容器:
This article series examines the JSR 168 portlet container available in IBM WebSphere Application Server V6.1 and differentiates its use from WebSphere Portal.
希望这对您有所帮助并助您一臂之力。
关于java - 我可以仅使用应用程序服务器(Tomcat、JBoss 等)创建 Java 门户 (JSR 168/286) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28335770/