如何在Eclipse中启动Java EE 6项目

时间:2011-10-08 19:08:41

标签: java eclipse java-ee maven

我最近几年后开始学习Java EE 6(与其他语言一起)。我已经购买了关于Maven,EJB,JSF,Glassfish等的不同书籍(虽然还没有读过它们),我觉得完全不知道只是制作一个项目的复杂性。

如何在eclipse中从“scratch”(不是从书中的示例中复制一个)开始一个项目?我可以选择动态Web项目,Maven项目,EJB项目,EAR应用程序等。如果我想创建一个内部有EJB / JPA和JSF的应用程序(Web应用程序),我应该使用哪个?

我知道标准Maven目录布局和原型,但我不知道选择哪个是否可以这样做。当然,我知道有很多方法可以做到这一点,这取决于我将用它做什么,但我正在学习Java EE 6,所以我想至少掌握一些如何设置基础项目的知识。好。

我也被POM文件淹没了。我如何知道开始使用Web应用程序时需要哪些依赖项?或者这是否包含在正确的原型中(如果我找到一个?)

我使用Glassfish作为应用服务器,Eclipse,EJB,JPA和JSF。目前仅从书籍示例中学习。

5 个答案:

答案 0 :(得分:11)

嗯,对你的问题的完整答案几乎需要一本关于它的书,但这里有一些指示。

  • Java EE应用程序的概念表示使用一个或多个Java EE API实现并需要运行Java EE应用程序服务器的任何类型的Java应用程序。 Java API就是这样的:Servlet,JSP,EJB,JPA等。这些API的实现通常由应用程序服务器提供(类似于Tomcat具有servlet和JSP实现,Glassfish也具有这些API以及EJB等)。有一些非应用服务器Java EE API实现,比如Hibernate的JPA实现。简而言之,如果您在应用程序中使用其中一些API实现并将其部署到某些应用程序服务器(如Tomcat,Glassfish,JBoss AS等)中,那么您就拥有了Java EE应用程序。

    • 我已经告诉过你所有这些,因为实际上,大多数项目管理工具(如Eclipse,Maven等)使用Web-Application,EJB Module,Dynamic Web Project等这些细分作为自定义面额,用于建立应用程序将使用的Java EE API集合的球场。 I.E. Web应用程序或动态Web项目更可能使用Servlet和JSP API,EJB模块将(duh)使用EJB API等。正如我所说,这些是球场面额。动态Web应用程序也可以使用EJB或JPA,它不像是一成不变的。

    • 当您使用这些工具(如Eclipse或Maven)中的任何一个时,启动以上提到的一些命名项目,例如Elcipse中的Dynamic Web Project或带有Maven的标准Web应用程序,相应的工具将将常识依赖项添加到模板项目(在本例中为Servlet和JSP),然后让您从这里处理它。

    • 这里的想法是在项目开始使用之前了解所选工具的每种模板。就像你决定使用Eclipse并从动态Web项目开始一样,你应该看看Eclipse对你的要求以及做什么时它会做什么(它会询问你本地安装的Java EE应用服务器的位置。将引入诸如Servlet Implemnentation和JSP实现之类的依赖关系。或者如果您选择Maven并启动标准Web项目,您应该通过pom.xml文件查看它添加到项目中的依赖项,THAT pom.xml文件的基本功能是什么,等等。您还应该检查当你告诉它们这样做时,每个工具如何部署你的应用程序,它是否使用了Java EE服务器的一些热部署功能,是否需要凭据才能首先访问该服务器等。

我的简要建议是从最基本的示例开始:安装Tomcat(建议使用版本7),启动Eclipse for Java EE Development,将Tomcat安装添加到Eclipse配置中,启动使用该Tomcat的Dynamic Web项目作为应用程序服务器,只需执行一些基本的servlet和JSP页面,然后使用Eclipse将该sucker部署到tomcat并运行它。然后你可以分支到更高级的东西,比如用Maven做同样的事情,用Eclipse集成Maven项目,添加更多Java EE Stuff(比如JPA Implenentation)等等。

答案 1 :(得分:1)

  

我可以选择Dynamic Web项目,Maven项目,EJB项目,   EAR应用程序等。如果我想制作一个,我应该使用哪个   内部有EJB / JPA和JSF的应用程序(Web应用程序)?

在EJB 3.1规范之前,无法在war文件中部署EJB,但现在可以。因此,对于快速原型,您可以使用war文件而不是ear文件,如果这是您所需要的,并且您对它更熟悉。当然,您也可以将其部署在.ear文件中。

我相信Eclipse中的Dynamic Web项目会生成一个可以在AS中部署的.war文件。

如果您正在使用Maven,您也可以事先使用Maven创建项目,然后使用Maven导入(通过M2Eclipse插件)。这对我很有用。然后,使用Glassfish Maven plugin,您可以通过命令行将应用程序部署到Glassfish。

  

我也被POM文件淹没了。我怎么知道哪个   依赖关系我只需要开始使用Web应用程序?或者是   这包括在正确的原型(如果我找到一个?)

您至少在“提供”范围内需要Java EE依赖项,因为服务器可能会为您提供这些依赖项。这样,它们将在编译模式下可用。例如,JBoss Java EE 5堆栈的堆栈如下(不确定GlassFissh依赖项,但重要的是不要将库包含在.ear / .war中以避免库冲突):

<dependency>
    <groupId>org.apache.openejb</groupId>
    <artifactId>javaee-api</artifactId>
    <version>5.0-1</version>
    <scope>provided</scope>
</dependency>

补充:正如你所说,这在开始时可能是压倒性的,我认为this是如何设置Glassfish / Java EE项目的一个很好的资源。选择你感兴趣的位并祝你好运。

答案 2 :(得分:1)

我问你的第一件事就是为什么你要学习这么多技术。如果你的目的是找到工作,根据我的经验,公司有一种趋势,即远离Java EE并转向更简单的解决方案。例如,对于大多数组织和Tomcat(或其他Web服务器)而言,应用程序服务器都是过度的,而Spring和独立JMS服务器等辅助技术取代了功能齐全且功能更加复杂的Java EE服务器。

我认为随着您的入门和远离IDE,复杂构建,EAR等等,您将更好地专注于核心概念和更简单的技术。相反,从一两种技术开始(例如,一个问候Tomcat应用程序一个简单的Ant构建)并在您发现需要时逐渐添加每种技术。更好的是,如果你有一个现实世界的问题需要解决,即使它没有付出代价。

大多数公司(至少那些有技术线索的公司)宁愿雇用一名程序员,他们了解JSF这样的技术所带来的价值,以及复杂的成本,而不是简历上有很多首字母缩略词的人。

答案 3 :(得分:1)

http://blogs.oracle.com/arungupta/entry/web_app_development_using_java提供了有关如何使用Eclipse和GlassFish创建Java EE 6项目的完整说明。

或者,您也可以使用NetBeans创建Java EE 6项目,如下所述:

http://blogs.oracle.com/arungupta/entry/screencast_37_java_ee_6

答案 4 :(得分:0)

How to start a new web app project in Eclipse with Maven?

  

只需输入“archetype:generate”并选择JSF + EJB / JPA(如果可用)。

     

这个看起来很好:360:遥控 - &gt;   org.jboss.weld.archetypes:weld-jsf-jee(用于创建的焊接原型)   使用JSF 2.0,CDI 1.0,EJB 3.1和JPA 2.0的Java EE 6应用程序   (包括持久性单位))

     

Appfuse非常完整,可能会嵌入你永远不会拥有的东西   使用,你必须删除。

之后mvn eclipse:eclipse能够在eclipse中加载项目。