2011-10-08 148 views
9

我最近幾年(連同其他語言)在完成Java SE之後開始學習Java EE 6。我買了不同的關於Maven,EJB,JSF,Glassfish等的書(儘管如此還沒有讀完),我感到完全不知道做項目的複雜性。如何在Eclipse中啓動Java EE 6項目

如何在eclipse中從「scratch」(不從本書中的示例複製)中啓動項目?我可以選擇Dynamic Web項目,Maven項目,EJB項目,EAR應用程序等。如果我想創建一個內部具有EJB/JPA和JSF的應用程序(Web應用程序),應該使用哪一個?

我知道標準Maven目錄佈局和原型,但是我不知道要選擇這種方法。當然,我知道有很多方法可以做到這一點,這取決於我將如何使用它,但是我正在學習Java EE 6,所以我想至少了解如何將基本項目設置爲好。

我也很受POM文件的淹沒。如何才能知道我需要哪些依賴關係才能開始使用Web應用程序?或者這是否包含在正確的原型中(如果我找到了)?

我使用Glassfish作爲應用服務器,Eclipse,EJB,JPA和JSF。目前只從書中的例子中學習。

+0

如果你從頭開始,要學習Java,忽略Maven的現在!沒有必要使用IDE(無論是Netbeans還是Eclipse)提供您需要的一切。當涉及到實際項目時,Maven很有趣 - 只是一個提示,以便您可以從待辦事項列表中刪除一項技術:-) – home

回答

1

我可以從動態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 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項目一個很好的資源。選擇你感興趣的部分,祝你好運。

11

那麼,你的問題的完整答案几乎需要整本書本身,但這裏有一些指針。

  • 的Java EE應用程序的概念,代表任何一種使用一個或多個Java EE的API的實現,需要一個Java EE應用服務器運行Java應用程序。 Java API就是這樣的:Servlet,JSP,EJB,JPA等。這些API的實現通常由應用程序服務器提供(例如Tomcat具有servlet和JSP實現,Glassfish也具有這些以及EJB等)。假設有非應用程序服務器Java EE API實現,比如Hibernate的JPA實現。所以簡而言之,如果您在應用程序中使用其中的一些API實現並將其部署到某些應用程序服務器(如Tomcat,Glassfish,JBoss AS等)中,那麼您將擁有一個Java EE應用程序。

    • 我已經告訴你這一切,因爲在現實中,大多數的項目管理工具(比如Eclipse,Maven的,等等)使用這些細分如Web的應用程序,EJB模塊,動態Web項目等,作爲自定義面額,它建立了您的應用程序將使用的Java EE API的集合。 I.E. Web應用程序或動態Web項目將更可能使用Servlet和JSP API,EJB模塊將(使用)EJB API等。正如我所說,這些都是球場公園的教派。動態Web應用程序也可以使用EJB或JPA,它不像它寫的那麼簡單。

    • 當您使用Eclipse或Maven這些工具中的任何一個時,啓動上面提到的其中一個命名項目(例如Elcipse中的動態Web項目或Maven的標準Web應用程序),相應的工具將添加對您的模板項目的常識依賴關係(如本例中的Servlet和JSP),然後讓您從此處理它。

    • 這裏的想法是在項目開始之前使用它,然後才能理解所選工具的各種模板。就像如果您決定使用Eclipse並從動態Web項目開始一樣,您應該查看Eclipse向您詢問的內容以及執行操作時的操作(它會詢問您從本地安裝的Java EE應用程序服務器的位置將牽扯到諸如Servlet實現和JSP實現之類的依賴關係)。或者,如果你選擇Maven,並開始一個標準的Web項目,你應該檢查它通過pom.xml文件添加到項目中的依賴關係,THAT pom.xml文件的基本功能是什麼等等。你還應該檢查當你告訴它做的是這些工具如何部署應用程序,它使用Java EE服務器的一些熱點部署功能,它需要的憑據訪問該服務器第一等

我的簡短建議是從一個非常基本的例子開始:安裝Tomcat(建議使用版本7),啓動Eclipse for Java EE Development,將Tomcat安裝添加到Eclipse配置中,啓動一個使用該Tomcat作爲Application Server的Dynamic Web項目,只是做一些基本的servlet和JSP頁面,然後使用Eclipse將該sucker部署到tomcat並運行它。然後你可以分支到更高級的東西,比如用Maven做同樣的事情,將Maven項目與Eclipse集成,添加更多的Java EE東西(比如JPA Implenentation)等等。

1

我第一件事情就是, d問你是爲什麼你正在學習如此多的技術。如果你的目標是找到一份工作,以我的經驗來看,企業遠離Java EE並趨向於更簡單的解決方案。例如,對於大多數組織和Tomcat(或另一個Web服務器)來說,應用程序服務器是過度殺毒,它使用像Spring這樣的輔助技術和獨立的JMS服務器來替代全功能和更復雜的Java EE服務器。

我認爲在開始使用核心概念和更簡單的技術時應避免使用IDE,複雜的構建,EAR等等。相反,從一種或兩種技術開始(例如,一個hello Tomcat應用程序用一個簡單的Ant構建),並逐漸添加每種技術,因爲你找到需要。更好的是,如果你有一個真正的世界問題需要解決,即使它沒有支付。

大多數公司(至少那些有技術線索的人)寧願僱用一位程序員,他明白JSF所添加的技術的價值,以及複雜程度高於在簡歷中使用大量縮寫詞的人的複雜程度。

0

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

只需鍵入 「原型:產生」,並選擇JSF + EJB/JPA(如果可用)。

這一個似乎罰款:360:遠程 - > org.jboss.weld.archetypes:焊接JSF的JEE(焊接原型用於創建使用JSF 2.0,CDI 1.0,EJB 3.1和JPA一個 Java EE 6的應用2.0 (包括持久性單元))

該Appfuse是相當完整的,可能會嵌入的東西,你永遠不會 使用,你將不得不刪除。

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