Thủ tục dưới đây áp dụng cho JBoss AS 7.2+, JBoss EAP 6.1 trở lên và JBoss WildFly 8 + và giả định rằng bạn đã kiểm soát hoàn toàn quá trình cài đặt máy chủ và cấu hình. Này nâng cấp mặc định phiên bản JSF server-rộng:
- Tải cá nhân cá móm API và impl file (và do đó không phải là đơn
javax.faces.jar
tập tin). Phiên bản 2.1.x mới nhất hiện tại là 2.1.29 và phiên bản 2.2.x mới nhất hiện tại là 2.2.14. Giả sử bạn muốn nâng cấp lên 2.2.x. Bạn có thể tải chúng riêng rẽ từ kho Maven của họ:
- Hãy chắc chắn rằng JBoss là tắt máy.
- Cập nhật JSF API trong
/modules/system/layers/base/javax/faces/api/main
:
- Xóa hoặc sao lưu các tập tin JAR cũ (KHÔNG giữ nó trong cùng một thư mục, thậm chí không đổi tên!).
- Đặt
jsf-api-2.2.14.jar
tệp trong đó.
- mở
module.xml
tập tin và chỉnh sửa <resource-root>
để chỉ định tên tập tin mới như trong <resource-root path="jsf-api-2.2.14.jar"/>
impl
- Cập nhật JSF trong
/modules/system/layers/base/com/sun/jsf-impl/main
:
- Xóa hoặc sao lưu các tập tin JAR cũ (KHÔNG giữ nó trong cùng một thư mục, thậm chí không được đổi tên!).
- Đặt
jsf-impl-2.2.14.jar
tệp vào đó.
- mở
module.xml
tập tin và chỉnh sửa <resource-root>
để chỉ định tên tập tin mới như trong <resource-root path="jsf-impl-2.2.14.jar"/>
dữ liệu
- Cleanup JBoss cache/công việc chỉ để chắc chắn rằng không có bản sao cũ của lọ từ triển khai trước đó treo ở đó mà sẽ có khả năng chỉ va chạm với các lọ mới:
- Thùng rác tất cả các nội dung của
/standalone/data
(trừ các thư mục dữ liệu tùy chỉnh như thư mục chứa các file được tải lên, tất nhiên)
- Thùng rác tất cả các nội dung của
/standalone/deployments
- Rác tất cả nội dung của
/standalone/tmp
- Bắt đầu JBoss. Bây giờ nó sẽ sử dụng phiên bản JSF mới cho tất cả các triển khai.
Các thủ tục tương tự áp dụng cho JBoss AS 7.0/7.1 và JBoss EAP 6.0, bạn chỉ cần duyệt trong /modules/*
thay vì /modules/system/layers/base/*
, và bạn cần phải xoá bỏ một cách rõ ràng .index
tập tin cũ đó, nếu có (JBoss sẽ tự động tạo một cái). Ngoài ra, nếu module.xml
trong thư mục API bỏ lỡ <module name="com.sun.jsf-impl"/>
bên trong <dependencies>
, thì bạn cần phải thêm thủ công thư mục đó.
Lưu ý quan trọng là phiên bản Mojarra 2.2.x cũ hơn 2.2.7 sẽ không thành công trong AS/EAP khi triển khai với ngoại lệ sau: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.faces.flow.builder.FlowDefinition
. Sau đó, bạn về cơ bản có 2 tùy chọn: hạ cấp xuống Mojarra 2.1.x hoặc nâng cấp lên ít nhất là 2.2.7 hoặc mới hơn.
Trong trường hợp bạn muốn nâng cấp lên cá móm 2.3, mà không đưa ra một biến thể 2-JAR nữa trên Maven, bạn sẽ cần phải tự tạo ra các biến thể 2-JAR dựa trên javax.faces.jar
tập tin theo thủ tục này: How to install one jar variant of JSF (javax.faces.jar) on WildFly.
Bộ hướng dẫn sạch sẽ là gì. Nó đã làm việc. Cảm ơn bạn! – user2172625
Bạn được chào đón. – BalusC
Tôi đã folowed hướng dẫn này nhưng tôi khi tôi chạy máy chủ jboss7.1 tôi nhận được lỗi Lỗi nghiêm trọng trong quá trình triển khai:: java.lang.NoClassDefFoundError: com/sun/faces/spi/InjectionProvider, bất kỳ gợi ý nào? – simonC