2010-03-25 62 views
5

由于EJB 3我们拥有可嵌入的EJB容器,因此可以在没有应用程序服务器的情况下使用JPA实现,还可以使用Weld进行上下文和依赖项注入等。由于在许多系统上只有Tomcat可用,我想知道,如果Java EE可以在没有应用程序服务器的情况下使用,但可以使用像Tomcat这样的Servlet容器。没有应用程序服务器的Java EE

设置Java环境我需要做些什么?你看到什么缺点?

+0

但是用Web容器? – 2010-03-25 15:52:25

+0

是的,基于Servlet容器。我已经添加了这个。 – deamon 2010-03-25 16:25:30

+0

另请参阅此问题,[除了EAR和EJB,我从Java EE应用程序服务器上得到什么东西,我没有像Tomcat那样在servlet容器中获得?](http://stackoverflow.com/a/9199893/190816 ) – 2012-06-13 22:17:59

回答

1

您通常需要某些类型的容器,即使该容器不提供与Java EE相关的服务。毕竟,您确实需要一个长寿命的JVM进程来托管正在执行的代码。 Tomcat和Jetty将很好地完成这项工作,除了基本的servlet服务外,还提供一些相关的附加功能,如连接池。

2

如果我理解的很好,您想在servlet容器中使用EJB3/JPA。

不仅有JPA的单机实现,但也嵌入 EJB3容器,如OpenEJB或是Glassfish embeddable container。所以没有什么能够阻止你从Servlet容器启动这样一个可嵌入的容器来使用EJB3。 (注意:我不知道关于事务的所有细节,在一个完整的应用程序服务器中,你有JTA和一个分布式事务管理器,在Tomcat等Servlet容器中没有。 JPA与JTA和普通的JDBC一起工作,但我不知道如果没有JTA,一个可嵌入的容器是如何工作的。不过,我猜这样做是可行的,因为这样的可嵌入容器也用于单元测试,我猜测没有JTA分布交易经理)。

另一种方法是使用Spring。 Spring和EJB3确实变得非常相似。您可以在Servlet容器中启动Spring DI容器,并从与EJB3(声明性事务等)相同的工具中获益。看到这篇文章Spring vs. EJB3.

所有这些技术已变得非常模块化,特别是对于Java EE配置文件。你可以使用Sevlet,EJB3,JMS,JPA,甚至JTA独立于另一个。你也可以创建一个环境,让你选择你喜欢的环境,无论是使用Spring还是使用Java EE。问题是,它何时停止有意义,而是使用应用程序。服务器提供一切可用并易于管理。我认为Servlet/EJB3/JPA是极限,如果还需要更多的应用程序。服务器。

5

请注意,Tomcat是一个应用程序服务器。也就是说,在十月份,我们发布了Apache TomEE这是Tomcat,添加了缺失的JavaEE部件,然后使用Oracle的官方TCK对Java EE 6进行了认证。

该堆栈从原来简称为“OpenEJB/Tomcat”的演变而来,这是一个有用的堆栈,其名称很糟:)由于“EJB”部分,通常会被忽略,同时它还交付了事务,JMS,WebServices还有更多Tomcat。这个新名字要好得多,现在它正式获得JBoss或GlassFish的认证。我们对它的未来感到非常兴奋。

-1

多年前由我引入的J2EE没有应用程序服务器(来自Atomikos的Guy Pardon),这篇开创性文章是:http://www.onjava.com/pub/a/onjava/2006/02/08/j2ee-without-application-server.html--当时关注JMS和JDBC。

一般来说,由于Spring和Hibernate的原因,安装很容易。实际上,在做了一个Java EE项目并面对与应用程序服务器和EJB相关的XML地狱之后,我受到了启发。没有应用服务器,事情突然变得更加简单和可测试。

如果您需要安装Tomcat,那么配置起来可能会更麻烦一些,但最近Atomikos在http://www.atomikos.com处引入了即装即用的Tomcat集成,作为其商业产品的一部分。

HTH

+1

“在做了一个Java EE项目并面对与应用程序服务器和EJB相关的XML地狱之后,我受到了启发 - ”这不是真的。可以这么说,J2EE是“不赞成的”,这个问题提到了Java EE,而不是J2EE。从Java EE 5开始,接近0的配置。现在我们有Java EE 6和Java EE 7,在大多数情况下需要配置0。测试也是可能的和简单的。看看http://arquillian.org/ – zmirc 2014-09-07 14:20:36

相关问题