2017-09-29 26 views
11

Máy chủ ứng dụng Java EE 7 và cụ thể là thùng chứa Servlet 3.1 sẽ cho phép chúng tôi triển khai tệp WAR chứa ứng dụng web. Và một tệp tin WAR về bản chất là một JAR với bộ mô tả triển khai (web.xml) và một vài phần tử khác. Mặt khác, Java 9 giới thiệu khái niệm về tệp JAR kiểu mô-đun, có nghĩa là, một JAR với mô tả mô-đun (module-info.class) tạo mô-đun về mặt ghép hình dự án.Là mô-đun Java 9 cho các tệp WAR?

Vì vậy, tệp WAR có thể chứa mô tả mô-đun hay không và tạo "tệp WAR mô-đun"?

Đã có các máy chủ ứng dụng có khả năng chấp nhận triển khai "tệp WAR mô-đun" không?

Nói chung tương lai của các thùng chứa servlet và tệp WAR về mặt mô đun Java 9 là gì?

Trả lời

8

Hiện tại không có liên kết nào giữa các mô-đun Java EE và java 9 (ghép hình). Các bản phát hành Java EE trong tương lai có thể giới thiệu hành vi được xác định cụ thể về cách tương tác với các mô-đun ghép hình.

Tại thời điểm này, tất cả các máy chủ ứng dụng chạy trong "chế độ classpath" khi chạy trên JDK9, trong thực tế có nghĩa là chúng không sử dụng ghép hình.

Trong hầu hết các trường hợp, việc giới thiệu mô-đun thông tin để triển khai chiến dịch của bạn chỉ có thể gây ra sự cố triển khai vì JDK có thể thử tải theo cách khác với các phần khác của máy chủ ứng dụng. Hoặc thậm chí nó không thể tạo ra sự khác biệt vì hầu hết các máy chủ ứng dụng đều có logic tùy chỉnh để tải các lọ & các lớp.Một số máy chủ ứng dụng hiện có đã thực hiện một số loại mô-đun như OSGi (GlassFish, Liberty) hoặc jboss-modules (Wildfly) Nhưng tại thời điểm này ghép hình vẫn có một số hạn chế để có thể chạy các hệ thống mô-đun trên trên đỉnh của nó. Vì vậy, trong ngắn hạn, cho đến khi có thông số EE (có thể là 9+) được cập nhật để mô tả cách triển khai EE nên chạy trên thời gian chạy ghép hình không có cách "chính thức" về cách triển khai như vậy. Cho đến thời điểm đó, mỗi máy chủ ứng dụng có thể triển khai một số hỗ trợ tùy chỉnh cho nó nhưng nó sẽ không chuẩn.

4

Vì vậy, một tập tin WAR có thể chứa một mô tả mô-đun như tốt và thực hiện một "tập tin WAR mô-đun"

Vâng, nó có thể. Vì bây giờ nó có thể là Modular JAR file với các bộ mô tả triển khai như web.xml.


Nói chung tương lai của thùng chứa servlet và tệp WAR về mặt mô đun Java 9 là gì?

Từ khía cạnh Dynamic configuration của hệ thống mô-đun,

Đối với EE nền tảng Java, đặc biệt, mục tiêu là để cho phép một tiêu chuẩn mô đun chiến tranh-file tương lai trong đó các thành phần trong một tập tin chiến tranh có thể là các mô-đun dành cho nhà phát triển.


Có đã máy chủ ứng dụng có khả năng chấp nhận việc triển khai của một "tập tin WAR mô-đun"?

Mặc dù tôi hiện không biết về bất kỳ công cụ như vậy đang tồn tại hoặc máy chủ, tuy nhiên một khả năng create Modular Jar đã được thêm vào JMODJAR công cụ cung cấp một cái nhìn tương lai của việc lồng ghép các máy chủ ứng dụng và hệ thống mô-đun.

+2

Hiện tại, không có máy chủ ứng dụng nào có thể chạy triển khai mô-đun. Phần cấu hình động của ghép hình là có thể cho phép những thứ như vậy đối với các máy chủ ứng dụng, nhưng nó bị giới hạn nghiêm trọng trong những gì nó có thể hỗ trợ; đó cũng là một lý do tại sao các máy chủ ứng dụng chưa có hỗ trợ của họ. – ctomc

+0

@ctomc Cảm ơn. Tốt để tìm hiểu [rằng] (https://stackoverflow.com/a/46907106/1746118). – nullpointer

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