簡體   English   中英

如何在Eclipse中啟動Java EE 6項目

[英]How to start a Java EE 6 project in Eclipse

我最近在做了Java SE幾年后開始學習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。 目前僅從書籍示例中學習。

好吧,對你的問題的完整答案幾乎需要一本關於它的書,但這里有一些指示。

  • 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。 IE 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作為Application服務器的Dynamic Web項目,然后只做一些基本的servlet和JSP頁面,然后使用Eclipse將該sucker部署到tomcat並運行它。 然后你可以分支到更高級的東西,比如用Maven做同樣的事情,用Eclipse集成Maven項目,添加一些Java EE Stuff(比如JPA Implenentation)等等。

我可以選擇動態Web項目,Maven項目,EJB項目,EAR應用程序等。如果我想創建一個內部有EJB / JPA和JSF的應用程序(Web應用程序),我應該使用哪個?

在EJB 3.1規范之前,無法在war文件中部署EJB,但現在,您可以。 因此,對於快速原型,您可以使用war文件而不是ear文件,如果這是您所需要的,並且您對它更熟悉。 當然,您也可以將其部署在.ear文件中。

我相信Eclipse中的Dynamic Web項目會生成一個.war文件,您可以在AS中部署該文件。

如果您正在使用Maven,您也可以事先使用Maven創建項目,然后使用Maven導入(通過M2Eclipse插件)。 這對我很有用。 然后,使用Glassfish Maven插件 ,您可以通過命令行將應用程序部署到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>

補充:正如你所說,這在開始時可能是壓倒性的,我認為是如何設置Glassfish / Java EE項目的一個很好的資源。 選擇你感興趣的位並祝你好運。

我問你的第一件事就是為什么你要學習這么多技術。 如果你的目的是找到工作,根據我的經驗,公司有一種趨勢,即遠離Java EE並轉向更簡單的解決方案。 例如,對於大多數組織而言,應用程序服務器都是過度的,而Tomcat(或其他Web服務器)則使用諸如Spring之類的輔助技術和獨立的JMS服務器來取代功能齊全且功能更加復雜的Java EE服務器。

我認為,當你開始並遠離IDE,復雜的構建,EAR等時,你會更好地專注於核心概念和更簡單的技術。相反,從一兩種技術開始(例如一個帶有簡單Ant的hello Tomcat應用程序)構建)並在您發現需要時逐步添加每種技術。 更好的是,如果你有一個現實世界的問題需要解決,即使它沒有付出代價。

大多數公司(至少是那些有技術線索的公司)寧願聘請一位程序員,他們了解JSF這樣的技術所帶來的價值,以及復雜的成本,而不是簡歷上有很多首字母縮略詞的人。

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

如何使用Maven在Eclipse中啟動新的Web應用程序項目?

只需鍵入“archetype:generate”並選擇JSF + EJB / JPA(如果可用)。

這個看起來很好:360:遠程 - > org.jboss.weld.archetypes:weld-jsf-jee(使用JSF 2.0創建Java EE 6應用程序的Weld原型,CDI 1.0,EJB 3.1和JPA 2.0(包括持久性單元) )

Appfuse非常完整,可以嵌入你永遠不會使用的東西,你必須刪除。

之后mvn eclipse:eclipse能夠在eclipse中加載項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM