8

Tôi đang di chuyển ứng dụng của mình từ GlassFish 3.0.1 sang GlassFish 3.1.1. Triển khai không thành công, với các thông báo lỗi sau:"Ngoại lệ khi tải ứng dụng" mà không có dấu vết ngăn xếp

SEVERE: Exception while loading the app 
SEVERE: Exception while shutting down application container 
SEVERE: Exception while shutting down application container : java.lang.NullPointerException 
SEVERE: java.lang.RuntimeException: Error occurred during deployment: Exception while shutting down application container : java.lang.NullPointerException. Please see server.log for more details. 

Không có dấu vết ngăn xếp. Tôi quay vào mức độ gốc khai thác gỗ để FINEST, và thông điệp NGHIÊM TRỌNG đầu tiên xảy ra sau khi một thông điệp Weld:

//... 
FINE: WELD-000105 Enabled interceptor types for Manager 
Enabled alternatives: [] [] 
Registered contexts: [interface javax.enterprise.context.SessionScoped, interface javax.enterprise.context.RequestScoped, interface javax.inject.Singleton, interface javax.enterprise.context.Dependent, interface javax.enterprise.context.ApplicationScoped, interface javax.enterprise.context.ConversationScoped] 
Registered beans: 0 
Specialized beans: 0 
: [] 

Và trước nhiều tin nhắn như thế này (cho các lớp học khác nhau):

FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/org/jboss/seam/transaction/SeamTransaction.class 
FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/org/jboss/seam/transaction/SeamTransaction.class 
FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/net/sf/ehcache/config/TerracottaConfiguration$ValueMode.class 
//... 

gì có thể gây ra lỗi này? Các thông báo PWC4451 có thể chỉ ra rằng một số thư viện không được tải không?

+0

Có vẻ như nó không hoạt động. Nếu bất kỳ lập trình viên công cụ phát triển nào nhìn thấy điều này, hãy nhớ: thông báo lỗi tốt là một tính năng! – Nick

+2

Điều này thực sự được gắn cờ là một vấn đề về Glassfish và cần được khắc phục trong Glassfish 4.0, phù hợp với vấn đề này. Xem http://java.net/jira/browse/GLASSFISH-18599, thật không may, điều này không giúp bạn hoặc tôi ngay bây giờ. –

Trả lời

6

Điều này là do một hạt @ViewScoped không triển khai Serializable. Rõ ràng, một phiên bản cũ hơn của Weld mà chúng tôi đang sử dụng không thấy nó có thể bị phản đối rằng một chiếc đậu bị bẻ khóa không phải là Serializable, nhưng cái này không thành công vì nó. Oh well, hy vọng điều này tiết kiệm một ai đó một thời gian.

+1

Bạn đã đóng đinh nó! – Matyas

3

Sau ba giờ gỡ lỗi tôi khắc phục sự cố như thế này cố gắng để triển khai các ứng dụng trong JBoss 6.

Nó có vẻ như thông điệp nhiều lỗi từ Weld không thường xuyên bị thoát đúng cách dưới Glassfish. Trong trường hợp của tôi, tôi chú thích một EJB với @Stateless @RequestScoped (đó là bất hợp pháp, phải là @Statefull). Với Glassfish tôi chỉ có thể thấy "lỗi trong khi tải ứng dụng", trong khi ở JBoss 6 tôi nhận được thông báo lỗi chính xác cho biết mã vi phạm.

Tôi khuyên bạn nên thử triển khai trên JBoss 6 tước tất cả các phần (@Resource với đường dẫn JNDI cụ thể), ngăn cản người triển khai Weld quét ứng dụng và xác thực các công cụ CDI.

+0

Cảm ơn bạn đã đề xuất, tôi sẽ xem xét việc chạy các ứng dụng của tôi trên JBoss. Bạn có biết lỗi này đã được báo cáo cho các nhân viên Seam/GlassFish không? – Nick

2

Trong trường hợp của tôi, vấn đề là bean.xml của tôi bao gồm phần tử "bean" rỗng, được sử dụng để làm việc nhưng dường như không còn nữa. Nó hoạt động khi tôi thay thế nó bằng một bean.xml 0 byte hoàn toàn trống rỗng.

+0

Điều này đã giải quyết được vấn đề của tôi! Cảm ơn ... sẽ có một thời gian * dài * trước khi tôi sẽ cố gắng mà :) –

2

Tôi đã gặp sự cố tương tự khi thêm thiết bị chặn không được tuần tự hóa trong Glassfish 3.1.2.2. Chỉ cần có một NullPointerException mà không cần giải thích thêm.

Nó hoạt động tốt khi tôi thực hiện thiết bị chặn thực hiện Serializable.

1

Lý do và giải pháp tôi đã gặp phải liên quan đến vấn đề này:
- mục tiêu không cập nhật (hãy chắc chắn để làm một maven sạch, thư mục đích có thể bị khóa, hãy thử để tự loại bỏ nó và xây dựng lại tai của bạn (có vấn đề này một vài lần)
- vấn đề với hồ bơi JDBC: tuôn họ
- vấn đề xây dựng với EJB của (lưu ý đó là các thùng chứa người tạo ra hạt cà phê của bạn): container cần có khả năng để bắt đầu họ Vì vậy, một constructor mặc định không có đối số phải được. hiện tại

nếu điều đó không hoạt động: nhóm-> so sánh -> làm việc mới nhất vers ion và xem xét mọi hạt EJB hoặc DTO cho các dịch vụ web như một nguyên nhân có thể gây ra lỗi. Nhận xét các thay đổi của bạn và thử lại để triển khai để xác định sự cố của bạn.

Dù sao thì đó là một lỗi khó chịu :(Chúc may mắn!

0

Trong trường hợp của tôi và theo tinh thần của Kẻ đánh chặn, tôi rất dễ tìm thấy vì tôi đang chơi ở đó.

Tôi thêm @Interceptor vô tội vào bộ chặn đánh chặn của mình mặc dù tôi đang sử dụng nó bằng chú thích.

Phiên bản thủy tinh của tôi là 3.1.2.2.

Trang này nói rằng tùy chọn này là tùy chọn Inteceptor Javadoc.

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