Sự khác biệt giữa tệp .war và .ear là gì?
Sự khác biệt giữa tệp .war và .ear là gì?
Câu trả lời:
Từ GeekInterview :
Trong ứng dụng J2EE, các mô-đun được đóng gói dưới dạng EAR, JAR và WAR dựa trên chức năng của chúng
JAR: Các mô-đun EJB chứa các hạt java doanh nghiệp (tệp lớp) và mô tả triển khai EJB được đóng gói dưới dạng tệp JAR có phần mở rộng .jar
WAR: Các mô-đun web chứa tệp lớp Servlet, Tệp JSP, tệp hỗ trợ, tệp GIF và tệp HTML được đóng gói dưới dạng tệp JAR với phần mở rộng .war (lưu trữ web)
EAR: Tất cả các tệp trên (.jar và .war) được đóng gói dưới dạng tệp JAR với phần mở rộng .ear (lưu trữ doanh nghiệp) và được triển khai vào Máy chủ ứng dụng.
Một WAR (Web Archive) là một mô-đun đó được nạp vào một thùng chứa Web của một máy chủ ứng dụng Java . Máy chủ ứng dụng Java có hai bộ chứa (môi trường thời gian chạy) - một là bộ chứa Web và cái còn lại là bộ chứa EJB.
Bộ chứa Web lưu trữ các ứng dụng Web dựa trên JSP hoặc API của Servlets - được thiết kế dành riêng cho xử lý yêu cầu web - vì vậy nhiều hơn một kiểu yêu cầu / phản hồi của điện toán phân tán . Một bộ chứa Web yêu cầu mô-đun Web phải được đóng gói dưới dạng tệp WAR - đó là tệp JAR đặc biệt có web.xml
tệp trong WEB-INF
thư mục.
Một bộ chứa EJB lưu trữ các java java doanh nghiệp dựa trên API EJB được thiết kế để cung cấp chức năng kinh doanh mở rộng như giao dịch khai báo, bảo mật mức phương thức khai báo và hỗ trợ đa phương tiện - nhiều kiểu RPC của máy tính phân tán . Các thùng chứa EJB yêu cầu các mô-đun EJB được đóng gói dưới dạng tệp JAR - những tệp này có một ejb-jar.xml
tệp trong META-INF
thư mục.
Các ứng dụng doanh nghiệp có thể bao gồm một hoặc nhiều mô-đun có thể là mô-đun Web (được đóng gói dưới dạng tệp WAR), mô-đun EJB (được đóng gói dưới dạng tệp JAR) hoặc cả hai mô-đun. Các ứng dụng doanh nghiệp được đóng gói dưới dạng tệp EAR - đây là các tệp JAR đặc biệt có chứa một application.xml
tệp trong META-INF
thư mục.
Về cơ bản, các tệp EAR là một siêu bộ chứa các tệp WAR và các tệp JAR . Máy chủ ứng dụng Java cho phép triển khai các mô-đun web độc lập trong một tệp WAR, mặc dù bên trong, chúng tạo các tệp EAR như một trình bao bọc xung quanh các tệp WAR. Các thùng chứa web độc lập như Tomcat và Jetty không hỗ trợ các tệp EAR - đây không phải là các máy chủ Ứng dụng chính thức. Các ứng dụng web trong các thùng chứa này chỉ được triển khai dưới dạng tệp WAR.
Trong các máy chủ ứng dụng, các tệp EAR chứa các cấu hình như ánh xạ vai trò bảo mật ứng dụng, ánh xạ tham chiếu EJB và ánh xạ URL gốc ngữ cảnh của các mô-đun web.
Ngoài các mô-đun Web và mô-đun EJB, các tệp EAR cũng có thể chứa các mô-đun trình kết nối được đóng gói dưới dạng tệp RAR và mô-đun Máy khách được đóng gói dưới dạng tệp JAR.
.jar
, .war
và .ear
các tập tin được lưu trữ zip đơn giản, do đó có thể được mở bằng bất kỳ chương trình có thể xử lý các file .zip bình thường.
chiến tranh - lưu trữ web. Nó được sử dụng để triển khai các ứng dụng web theo tiêu chuẩn servlet. Nó là một tệp jar chứa một thư mục đặc biệt có tên WEB-INF và một số tệp và thư mục bên trong nó (web.xml, lib, các lớp) cũng như tất cả các tài nguyên HTML, JSP, hình ảnh, CSS, JavaScript và các tài nguyên khác của ứng dụng web
tai - lưu trữ doanh nghiệp. Nó được sử dụng để triển khai ứng dụng doanh nghiệp có chứa EJB, ứng dụng web và thư viện của bên thứ 3. Nó cũng là một tệp jar, nó có một thư mục đặc biệt gọi là APP-INF chứa tệp application.xml và nó chứa các tệp jar và war.
Các tệp WAR (lưu trữ web) chứa các tệp lớp servlet, tệp JSP (trang Java servlet), tệp HTML và đồ họa và các tệp hỗ trợ khác.
Các tệp EAR (lưu trữ doanh nghiệp) chứa các tệp WAR cùng với các tệp JAR chứa mã.
Có thể có những thứ khác trong các tệp đó nhưng về cơ bản chúng có nghĩa là những gì chúng có nghĩa là: WAR cho công cụ loại web, EAR cho công cụ loại doanh nghiệp (WARs, mã, trình kết nối et al).
Tệp JAR
Tệp JAR (viết tắt của Lưu trữ Java) cho phép kết hợp nhiều tệp thành một tệp duy nhất. Các tệp có '.jar'; tiện ích mở rộng được các nhà phát triển phần mềm sử dụng để phân phối các lớp Java và các siêu dữ liệu khác nhau. Chúng cũng chứa các thư viện và tệp tài nguyên, cũng như các tệp phụ kiện (như tệp thuộc tính).
Người dùng có thể trích xuất và tạo các tệp JAR bằng lệnh '.jar' của Bộ công cụ phát triển Java (JDK). Công cụ ZIP cũng có thể được sử dụng.
Các tệp JAR có các tệp kê khai tùy chọn. Các mục trong tệp kê khai quy định việc sử dụng tệp JAR. Một đặc tả lớp 'chính' cho một lớp tệp biểu thị tệp là một chương trình tách rời hoặc 'độc lập'.
Tập tin WAR
Các tệp WAR (hoặc lưu trữ ứng dụng web) có thể chứa các tệp XML (Ngôn ngữ đánh dấu mở rộng), các lớp Java, cũng như các trang Máy chủ Java cho các mục đích của ứng dụng Internet. Nó cũng được sử dụng để đánh dấu các thư viện và trang Web tạo nên một ứng dụng Web. Các tệp có phần mở rộng '.war' chứa ứng dụng Web để sử dụng với các thùng chứa máy chủ hoặc JSP (Trang máy chủ Java). Nó có JSP, HTML (Ngôn ngữ đánh dấu siêu văn bản), JavaScript và các tệp khác nhau để tạo các ứng dụng Web đã nói ở trên.
Một tệp WAR được cấu trúc như vậy để cho phép các thư mục và tệp đặc biệt. Nó cũng có thể có chữ ký điện tử (giống như tệp JAR) để hiển thị tính chính xác của mã.
Tập tin EAR
Tệp EAR (Lưu trữ doanh nghiệp) hợp nhất các tệp JAR và WAR vào một kho lưu trữ duy nhất. Các tệp có phần mở rộng '.ear' có một thư mục cho siêu dữ liệu. Các mô-đun được đóng gói vào kho lưu trữ để vận hành trơn tru và đồng thời các mô-đun khác nhau trong một máy chủ ứng dụng.
Tệp EAR cũng có các mô tả triển khai (là các tệp XML) có hiệu quả quyết định việc triển khai các mô-đun khác nhau.
Tham khảo: http://www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html
tar (băng lưu trữ) - Định dạng được sử dụng là tệp được viết bằng các đơn vị nối tiếp của fileName, fileSize, fileData - không nén. có thể rất lớn
Jar (java archive) - các kỹ thuật nén được sử dụng - thường chứa thông tin java như các tệp lớp / java. Nhưng có thể chứa bất kỳ tập tin và cấu trúc thư mục
war (lưu trữ ứng dụng web) - tương tự như các tệp jar chỉ có cấu trúc thư mục cụ thể theo thông số kỹ thuật của JSP / Servlet cho mục đích triển khai
tai (lưu trữ doanh nghiệp) - tương tự như các tệp jar. có cấu trúc thư mục theo yêu cầu của J2EE để có thể triển khai trên các máy chủ ứng dụng J2EE. - có thể chứa nhiều tệp JAR và WAR
Các tệp tai cung cấp nhiều tùy chọn hơn để định cấu hình tương tác với máy chủ ứng dụng.
Ví dụ: nếu phiên bản ngủ đông của máy chủ ứng dụng cũ hơn phiên bản do phụ thuộc của bạn cung cấp, bạn có thể thêm phần sau vào trình triển khai tai-jboss-bean.xml cho JBOSS để cô lập trình nạp lớp và tránh xung đột:
<bean name="EARClassLoaderDeployer" class="org.jboss.deployment.EarClassLoaderDeployer">
<property name="isolated">true</property>
</bean>
hoặc đến src / main / application / META-INF / jboss-app.xml:
<?xml version="1.0"?>
<jboss-app>
<loader-repository>
loader=nameofyourear.ear
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</jboss-app>
Điều này sẽ đảm bảo rằng không có xung đột trình nạp lớp giữa ứng dụng của bạn và máy chủ ứng dụng.
Thông thường cơ chế nạp lớp hoạt động như thế này:
Khi một yêu cầu tải lớp được trình bày cho trình nạp lớp, trước tiên nó yêu cầu trình nạp lớp cha của nó thực hiện yêu cầu. Đến lượt, cha mẹ yêu cầu lớp của nó cho lớp cho đến khi yêu cầu đạt đến đỉnh của hệ thống phân cấp. Nếu trình nạp lớp ở đầu phân cấp không thể đáp ứng yêu cầu, thì trình nạp lớp con được gọi là lớp đó chịu trách nhiệm tải lớp.
Bằng cách cách ly các trình nạp lớp, trình nạp lớp tai của bạn sẽ không tìm trong phần tử cha (= JBoss / trình nạp lớp AS khác). Theo tôi biết, điều này là không thể với các tập tin chiến tranh.
J2EE định nghĩa ba loại tài liệu lưu trữ:
Lưu trữ Java (JAR) Tệp JAR gói gọn một hoặc nhiều lớp Java, tệp kê khai và mô tả. Các tệp JAR là mức lưu trữ thấp nhất. Các tệp JAR được sử dụng trong J2EE để đóng gói EJB và Ứng dụng Java phía máy khách.
Các tệp WAR của Lưu trữ web (WAR) tương tự như các tệp JAR, ngoại trừ chúng dành riêng cho các ứng dụng web được tạo từ Servlets, JSP và các lớp hỗ trợ.
Lưu trữ doanh nghiệp (EAR) Một tệp EAR chứa tất cả các thành phần tạo nên một ứng dụng J2EE cụ thể.
Để làm cho việc vận chuyển dự án, triển khai thực hiện dễ dàng. cần phải nén thành một tập tin. Nhóm JAR (java archive) của các tệp. Class
WAR (lưu trữ web) - mỗi cuộc chiến đại diện cho một ứng dụng web - chỉ sử dụng các công nghệ liên quan đến web như servlet, jsps có thể được sử dụng. - có thể chạy trên máy chủ Tomcat - ứng dụng web được phát triển bởi các công nghệ liên quan đến web chỉ jsp servlet html js - đại diện thông tin chỉ không có giao dịch.
EAR (lưu trữ doanh nghiệp) - mỗi tai đại diện cho một ứng dụng doanh nghiệp - chúng tôi có thể sử dụng mọi thứ từ j2ee như ejb, jms có thể được sử dụng một cách vui vẻ. - có thể chạy trên Glassfish như máy chủ không phải trên máy chủ Tomcat. - ứng dụng doanh nghiệp bị lệch bởi bất kỳ công nghệ nào từ j2ee như tất cả các ứng dụng web cộng với ejbs jms, v.v. - không giao dịch với đại diện thông tin. ví dụ. Ứng dụng ngân hàng, ứng dụng viễn thông
.JAR, .WAR and .EAR
Bạn cũng có thể xem một video hướng dẫn. Nó rất đơn giản hoặc dễ hiểu hơn. Nó sẽ giải thích sự khác biệt giữa .JAR, .WAR và .EAR Video Hướng dẫn : Sự khác biệt giữa .JAR, .WAR và .EAR