Đối với một bean J2EE Tôi đang sử dụng lại mã được phát triển cho một ứng dụng java swing. JOptionPane.showMessageDialog() là tiếc là thường được sử dụng. Hầu hết các lần xuất hiện may mắn trong các phần mã không được ứng dụng J2EE sử dụng lại, nhưng trong một số trường hợp, các mức mã thấp hơn có các cá thể của JOptionPane.showMessageDialog(). Rõ ràng điều này dẫn đến các hộp thoại xuất hiện trên máy chủ, đó là những gì tôi muốn tránh.Cách tốt nhất để phát hiện xem mã lệnh chạy trong một máy chủ ứng dụng java
Là một bước đầu tiên tôi muốn bằng cách nào đó đảm bảo rằng không có hộp thoại sẽ bao giờ xảy ra trên máy chủ.
Có người đề nghị nhìn trộm trong một số sự kiện hoặc sơn hàng đợi (tôi không nhớ cái nào): Đó sẽ là:
// old code: JOptionPane.showMessageDialog(msg);
if (someEventQueue.size() == 0) // <== consider this pseudo-code
Log.log(msg); // I am running on a server. Tell the log.
else
JOptionPane.showMessageDialog(msg); // I have a user made of meat. Tell him!
Tôi chưa bao giờ thực sự nhận rằng làm việc. Bạn sẽ làm gì?
Tôi sẽ cố gắng làm điều đó một cách chính xác. Có một giao diện với một phương thức 'logToUser', và có thể truyền một thể hiện của nó xung quanh trong mã của bạn hoặc đưa nó vào một số trường tĩnh (nếu trường khác là không khả thi). Nơi bạn đăng nhập, chỉ cần gọi phương thức đó. Người dùng mã trên máy chủ sẽ phải cung cấp triển khai và ứng dụng Swing cung cấp một mã khác (và Android hoặc SWT hoặc ứng dụng khác sẽ phải cung cấp một ứng dụng khác). Đảm bảo kiểm tra sớm nếu cài đặt được thực hiện và ném ngoại lệ nếu không ... – mihi