2011-10-08 53 views
9

Gần đây tôi đã bắt đầu học Java EE 6 sau khi thực hiện Java SE trong một vài năm nay (cùng với các ngôn ngữ khác). Tôi đã mua những cuốn sách khác nhau về Maven, EJB, JSF, Glassfish và vân vân (chưa đọc hết tất cả), và tôi cảm thấy hoàn toàn bị choáng ngợp bởi sự phức tạp của việc tạo ra một dự án.Cách khởi động dự án Java EE 6 trong Eclipse

Làm cách nào để bắt đầu dự án từ "đầu" (Không sao chép từ ví dụ trong sách) trong nhật thực? Tôi có thể chọn từ dự án Web động, dự án Maven, dự án EJB, ứng dụng EAR vv Tôi nên sử dụng loại nào nếu tôi muốn tạo một ứng dụng có EJB/JPA và JSF bên trong (ứng dụng web)?

Tôi biết về bố cục thư mục tiêu chuẩn Maven và kiểu mẫu, tuy nhiên tôi không biết nên chọn cách nào nếu đây là cách thực hiện. Tất nhiên, tôi hiểu rằng có rất nhiều cách để thực hiện nó và nó phụ thuộc vào những gì tôi sẽ sử dụng nó, nhưng tôi đang học Java EE 6 vì vậy tôi muốn ít nhất có một số kiến ​​thức về cách thiết lập một dự án cơ bản như tốt.

Tôi cũng bị choáng ngợp bởi tệp POM. Làm thế nào để tôi biết những phụ thuộc nào tôi cần chỉ để bắt đầu với một ứng dụng web? Hoặc điều này có được bao gồm trong nguyên mẫu chính xác không (nếu tôi tìm thấy nguyên mẫu?)

Tôi đang sử dụng Glassfish làm máy chủ ứng dụng, Eclipse, EJB, JPA và JSF. Hiện chỉ đang học từ các ví dụ về sách.

+0

Nếu bạn bắt đầu từ đầu và muốn tìm hiểu Java, bỏ qua Maven cho bây giờ! Nó không cần thiết để sử dụng, các IDE (cho dù Netbeans hay Eclipse) cung cấp mọi thứ bạn cần. Maven rất thú vị khi nói đến các dự án thực tế - chỉ là một gợi ý để bạn có thể loại bỏ một công nghệ khỏi danh sách việc cần làm của mình :-) – home

Trả lời

1

tôi có thể chọn từ dự án Web động, dự án Maven, dự án EJB, EAR ứng dụng vv nào tôi nên sử dụng nếu tôi muốn thực hiện một ứng dụng có EJB/JPA và JSF bên trong (ứng dụng web)?

Trước khi EJB 3.1 không thể triển khai EJB trong tệp chiến tranh, nhưng bây giờ, bạn có thể. Vì vậy, đối với một nguyên mẫu nhanh chóng, bạn có thể sử dụng một tập tin chiến tranh chứ không phải là một tập tin tai nếu đó là tất cả các bạn yêu cầu và bạn đã quen thuộc hơn với nó. Tất nhiên bạn cũng có thể triển khai nó trong một tệp .ear.

Tôi tin rằng dự án Web động trong Eclipse tạo ra tệp .war mà bạn có thể triển khai trong AS của mình.

Nếu bạn đang sử dụng Maven, bạn cũng có thể tạo dự án của bạn với Maven trước, sau đó nhập bằng Maven (qua trình cắm M2Eclipse). Điều này làm việc khá tốt cho tôi. Sau đó, với Glassfish Maven plugin, bạn có thể triển khai ứng dụng của mình cho Glassfish thông qua dòng lệnh.

Tôi cũng bị choáng ngợp bởi tệp POM. Làm thế nào để tôi biết những phụ thuộc nào của Tôi chỉ cần bắt đầu với một ứng dụng web? Hoặc là này bao gồm trong nguyên mẫu chính xác (nếu tôi tìm thấy một?)

Bạn cần phụ thuộc Java EE ít nhất là trong một phạm vi "cung cấp" như các máy chủ có thể sẽ cung cấp những cho bạn. Bằng cách này, họ sẽ có sẵn cho bạn trong chế độ biên dịch. Ví dụ, một cho ngăn xếp JBoss Java EE 5 như sau (không chắc chắn về sự phụ thuộc của GlassFissh, nhưng những thứ quan trọng không bao gồm thư viện trong .ear/.war để tránh các xung đột trong thư viện):

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

Đã thêm: Như bạn đã nói, điều này có thể áp đảo ngay từ đầu, tôi nghĩ this là tài nguyên tốt về cách thiết lập dự án Glassfish/Java EE. Chọn các bit bạn quan tâm và may mắn.

11

Vâng, một câu trả lời hoàn chỉnh cho câu hỏi của bạn sẽ cần một cuốn sách toàn bộ, nhưng đây là một số gợi ý.

  • Khái niệm về ứng dụng Java EE thể hiện bất kỳ loại ứng dụng Java nào sử dụng một hoặc nhiều triển khai API Java EE và cần một máy chủ ứng dụng Java EE để chạy. Các API Java là các API như vậy: Servlet, JSP, EJB, JPA, vv Việc triển khai các API này thường được cung cấp bởi máy chủ ứng dụng (như Tomcat có triển khai servlet và JSP, Glassfish cũng có các API đó cũng như EJB, v.v.). Có, giả sử các ứng dụng Java EE API của máy chủ không ứng dụng như triển khai thực hiện JPA của Hibernate. Vì vậy, trong ngắn hạn nếu bạn sử dụng một số các triển khai API trong ứng dụng của bạn và triển khai nó vào một số máy chủ ứng dụng như Tomcat, Glassfish, JBoss AS, v.v., bạn có một ứng dụng Java EE.

    • Tôi đã nói với bạn tất cả điều này vì trong thực tế, hầu hết các công cụ quản lý dự án (như Eclipse, Maven, vv) sử dụng các phân khu như Web-Ứng dụng, EJB Module, động dự án Web vv, như một tên gọi tùy chỉnh thiết lập công viên bóng của tập hợp các API Java EE mà ứng dụng của bạn sẽ sử dụng. I E. một Ứng dụng Web hoặc Dự án Web Động sẽ có nhiều khả năng sử dụng các API Servlet và JSP, một Mô-đun EJB sẽ (duh) sử dụng các API EJB và vân vân. Đây là, như tôi đã nói, mệnh giá công viên bóng. Một ứng dụng web động có thể sử dụng EJB hoặc JPA, nó không giống như nó được viết bằng đá.

    • Khi bạn sử dụng một trong các công cụ này như Eclipse hoặc Maven, để bắt đầu một trong các dự án được đề cập ở trên, chẳng hạn như Dự án web động trong Elcipse hoặc Ứng dụng web chuẩn với Maven, công cụ tương ứng sẽ thêm các phụ thuộc cảm giác chung cho dự án mẫu của bạn (như Servlet và JSP trong trường hợp này), và sau đó cho phép bạn xử lý nó từ đây.

    • Ý tưởng ở đây là hiểu từng loại mẫu của công cụ bạn đã chọn trước khi bạn sử dụng nó khi bắt đầu dự án. Giống như nếu bạn quyết định sử dụng Eclipse và bắt đầu với một dự án Web động, bạn nên kiểm tra chính xác những gì Eclipse hỏi bạn và làm gì khi bạn làm điều đó (nó sẽ hỏi bạn về vị trí của một máy chủ ứng dụng Java EE được cài đặt cục bộ. sẽ kéo các phụ thuộc như một Servlet Implemnentation và thực hiện JSP trong số những thứ khác). Hoặc nếu bạn chọn Maven và bắt đầu một dự án web chuẩn, bạn nên kiểm tra những phụ thuộc mà nó thêm vào dự án của bạn thông qua tệp pom.xml, những chức năng cơ bản của tệp pom.xml THAT, v.v. Bạn cũng nên kiểm tra cách mỗi người trong số những công cụ triển khai ứng dụng của bạn khi bạn nói với nó để làm điều đó, nó sử dụng một số tính năng triển khai nóng của máy chủ Java EE của bạn, hiện nó cần thông tin để truy cập vào máy chủ đầu tiên vv

Lời khuyên ngắn gọn của tôi là bắt đầu với ví dụ cơ bản: Cài đặt Tomcat (phiên bản 7 được khuyến nghị), khởi động Eclipse cho Java EE Development, thêm cài đặt Tomcat đó vào cấu hình Eclipse của bạn, khởi động dự án Web động sử dụng Tomcat đó làm máy chủ ứng dụng và chỉ làm một số điều cơ bản các trang servlet và JSP, sau đó sử dụng Eclipse để triển khai sucker đó tới tomcat và chạy nó. Sau đó, bạn có thể phân nhánh thành các công cụ nâng cao hơn, giống như làm điều tương tự với Maven, tích hợp một dự án Maven với Eclipse, thêm một số nội dung Java EE khác (như JPA Implenentation), v.v.

1

Điều đầu tiên tôi ' d hỏi bạn là lý do bạn học rất nhiều công nghệ. Nếu mục đích của bạn là nhận được một công việc, theo kinh nghiệm của tôi, có một xu hướng trong các công ty cách xa Java EE và hướng tới các giải pháp đơn giản hơn. Ví dụ, các máy chủ ứng dụng là quá mức cần thiết đối với hầu hết các tổ chức và Tomcat (hoặc một máy chủ web khác) với các công nghệ trợ giúp như Spring và các máy chủ JMS độc lập thay thế các máy chủ Java EE phức tạp và đầy đủ tính năng.

Tôi nghĩ bạn sẽ được phục vụ tốt hơn tập trung vào các khái niệm cốt lõi và công nghệ đơn giản hơn khi bạn bắt đầu và tránh xa các IDE, xây dựng phức tạp, EAR, v.v. Thay vào đó, hãy bắt đầu bằng một hoặc hai công nghệ (ví dụ: ứng dụng Tomcat chào với kiến ​​trúc Ant đơn giản) và dần dần thêm từng công nghệ vào khi bạn tìm thấy nhu cầu. Tốt hơn nếu bạn có một vấn đề thế giới thực để giải quyết, ngay cả khi nó không trả tiền.

Hầu hết các công ty (ít nhất là những người có đầu mối kỹ thuật) sẽ thuê một lập trình viên hiểu giá trị của một công nghệ như JSF bổ sung và chi phí phức tạp hơn người có nhiều từ viết tắt trong sơ yếu lý lịch của họ.

0

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

Chỉ cần gõ "archetype: tạo" và chọn JSF + EJB/JPA nếu có.

Cái này có vẻ tốt đẹp: 360: từ xa -> org.jboss.weld.archetypes: hàn-jsf-jee (Weld nguyên mẫu để tạo một Java EE 6 ứng dụng sử dụng JSF 2.0, CDI 1.0, EJB 3.1 và JPA 2.0 (bao gồm đơn vị kiên trì))

Appfuse hoàn chỉnh hơn và có thể nhúng nội dung bạn sẽ không bao giờ sử dụng và bạn sẽ phải xóa.

Sau đó nhật thực mvn: nhật thực để có thể tải dự án trong nhật thực.

Các vấn đề liên quan