Tomcat 无法处理的 Java EE 场景

发布于 2024-11-15 13:17:49 字数 292 浏览 4 评论 0原文

Tomcat仅实现了Java企业版架构的Web容器。相比之下,GlassFish 实现了完整的 Java EE 堆栈。这个已经在 stackoverflow 上讨论了很多

然而,对于像我这样的 Java EE 初学者来说,很难想象 Tomcat 不能做什么。您能举一些简短的例子吗?

Tomcat only implements the web container of the Java Enterprise Edition architecture. In contrast, e.g. GlassFish implements a full Java EE stack. This has been discussed a lot on stackoverflow.

However, for a Java EE beginner like me it is hard to imagine what cannot be done with Tomcat. Could you please give some short examples?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

§普罗旺斯的薰衣草 2024-11-22 13:17:49

来自 Apache tomcat 文档

tomcat 是 EJB 服务器吗?我可以将 EJB 与 tomcat 一起使用吗?

Tomcat 不是 EJB 服务器。 Tomcat 不是一个完整的 J2EE 服务器。 Tomcat 是一个 Servlet 容器。 Tomcat 确实支持 Servlet 所需的 J2EE 规范部分,例如 JNDI 功能的子集。此外,您可以连接到远程 J2EE 服务器,或运行嵌入在完整 J2EE 服务器中的 tomcat。

这意味着一些差异是...

  • Tomcat 只能处理 WAR,而不是 EAR
  • Tomcat 不支持任何类型的 EJB(如会话 Bean、MDB、定时器等)
  • Tomcat 没有 JPA 支持
  • Tomcat 的 JNDI 功能有限(不是确保此处的详细信息)

Tomcat 可以在 J2EE 容器内部用作 Web 容器。

Tomcat 在资源和文件系统占用方面要轻得多。

如果您需要 J2EE 功能,我的建议是硬着头皮使用 Glassfish,尽管其复杂性和资源需求(与 tomcat 相比,Glassfish 与 Weblogic 和 JBoss 等其他工具相比相当容易使用)。如果没有,请坚持使用 tomcat,它会让您的事情变得简单而快速。无论哪种方式,稍后切换项目打包并更换容器并不困难。

From the Apache tomcat documentation:

Is tomcat an EJB server? Can I use EJBs with tomcat?

Tomcat is not an EJB server. Tomcat is not a full J2EE server. Tomcat is a Servlet container. Tomcat does support those parts of the J2EE specification that are required for Servlets, such as a subset of JNDI functionality. Furthermore, you can connect to remote J2EE servers, or run tomcat embedded inside a full J2EE server.

Some of the differences this implies is...

  • Tomcat can only handle WARs, not EARs
  • Tomcat does not support any types of EJBs (like Session Beans, MDBs, Timers, etc.)
  • Tomcat has no JPA support
  • Tomcat has limited JNDI functionality (not sure of the details here)

Tomcat can be used inside of an J2EE conatiner to use as the web conatiner.

Tomcat is much lighter-weight regarding resources and file system foot prints.

If you need J2EE functionality, my suggestion would be to bite the bullet and use Glassfish despite the complexity and resource requirements (compared to tomcat, Glassfish is quite easy to use compared to others like Weblogic, and JBoss). If not, stick with tomcat, it will keep things simple and fast for you. Either way, it isn't hard to switch your project packaging later and swap out containers.

离旧人 2024-11-22 13:17:49

Java EE 包含大量技术/功能。其中一些可作为 Tomcat 下载的一部分提供,其他可以添加到基于 Tomcat 的环境中,而某些则无法添加到 Tomcat 环境中。

将 EJB jar 部署到 Tomcat 上:否。

调用 EJB 容器中运行的 EJB 的远程方法:是。

将 RAR 部署到 Tomcat:否。

将 EAR 部署到 Tomcat:否。

将应用程序客户端 jar 部署到 Tomcat:否。

拼凑出一种托管 Java Web Startable 应用程序的方法,该应用程序调用在 EJB 容器中运行的 EJB 的远程方法:是

使用 JSF 作为应用程序的框架:是的,但是您需要在应用程序中打包实现或将其安装到服务器上。

创建一个程序,利用 JSR-88 管理将 war 文件部署到 Tomcat 上:不...并不是说这是一个巨大的损失。

使用 JSR-77 MEJB 来管理您的 Tomcat 服务器:不...另一个不是巨大的损失。

创建提供 SOAP Web 服务的 Web 应用程序:是的...但是您需要单独下载工具和库,并将它们与您的工作流程、应用程序和服务器运行时集成。

创建使用 JPA 的 Web 应用程序:是的...但是您需要将工具和库作为单独下载的一部分,并自行将它们与您的工作流程、应用程序和服务器运行时集成。

创建使用 CDI 的 Web 应用程序:是的...但您需要将工具和库作为单独下载的一部分,并自行将它们与您的工作流程、应用程序和服务器运行时集成。

There are a large number of technologies/capabilities that are part of Java EE. Some of them are available as part of the Tomcat download, others can be added to a Tomcat based environment and some cannot be added to a Tomcat environment.

Deploy an EJB jar onto Tomcat: No.

Call Remote methods of an EJB running in an EJB container: Yes.

Deploy a RAR onto Tomcat: No.

Deploy an EAR onto Tomcat: No.

Deploy an Application Client jar onto Tomcat: No.

Cobble together a way to host a Java Web Startable app that calls Remote methods of an EJB running in an EJB container: Yes

Use JSF as the framework for your app: Yes, but you need to package an implementation in your app or install it onto your server.

Create a program that leverages JSR-88 to manage deployment of war files onto Tomcat: No... not that this is a huge loss.

Use JSR-77 MEJBs to manage your Tomcat server: No... another not huge loss.

Create web apps that provide SOAP web services: Yes... but you will need to get the tools and libraries as part of a separate download and integrate them with your workflow, application and server runtime yourself.

Create web apps that use JPA: Yes... but you will need to the tools and libraries as part of a separate download and integrate them with your workflow, application and server runtime yourself.

Create web apps that use CDI: Yes... but you will need to the tools and libraries as part of a separate download and integrate them with your workflow, application and server runtime yourself.

江南月 2024-11-22 13:17:49

EJB - 无状态会话 Bean、有状态会话 Bean
消息驱动 Bean
EJB定时器
JPA (EJB3.0)

这是一个非常基本的列表。还有很多 Tomcat 所没有的功能。

EJBs - Stateless Session Beans, Stateful Session beans
Message driven beans
EJB Timers
JPA (EJB3.0)

This is a very basic list. there are many more features that Tomcat doesn't have.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文