2012-04-11 36 views
6

Tôi có một lớp Java với phương thức main(). Nó chứa logic để làm một số crunching số và phân tích. Lịch trình của nó được chạy một lần mỗi ngày và có thể được chạy thủ công một lần nữa nếu cần. Các thói quen sử dụng Log4j để đăng nhập các hoạt động của nó. Chạy và kiểm tra nhật ký yêu cầu đăng nhập từ xa vào hộp lưu trữ.Chuyển đổi Chương trình Bảng điều khiển Java thành Webapp

Tôi muốn chuyển đổi nó thành một ứng dụng web, nơi tôi có thể kích hoạt nó thông qua một trang web và xem đầu ra của nhật ký, lý tưởng khi nó cuộn.

Cách tốt nhất để làm điều này là gì? Một ứng dụng web Java? Một đơn giản chung dựa trên web kịch bản á hậu? hoặc bất kỳ tùy chọn nào khác mà tôi có thể không biết.

Cập nhật: Một chút chi tiết hơn về các yêu cầu:

  1. Khả năng khởi động chương trình từ một trang web
  2. Khả năng nhận biết sản lượng di chuyển từ Log4j
  3. Nếu tôi rời khỏi trang và quay trở lại lần nữa, nó sẽ cho tôi biết rằng lần chạy cuối cùng vẫn đang chạy và hiển thị nhật ký. Tôi không cần phải có khả năng chạy nhiều trường hợp song song.
+2

Bạn có kinh nghiệm với bất kỳ khung web java nào không? –

+0

Um, một ứng dụng Swing đơn giản sẽ không làm gì? –

+0

@Shagaan - Vâng, khung web java của tôi được chọn là Spring MVC – Danish

Trả lời

5

Bạn đã cân nhắc thiết lập máy chủ Hudson/Jenkins để thực hiện tác vụ chưa? Bởi vì nó có các tính năng bạn mô tả, nó là một ứng dụng web java, và nó sẽ làm việc mà không sửa đổi dự án hiện tại của bạn.

+0

Là một phần thưởng thêm, bạn có thể sử dụng Jenkins để xây dựng mã nguồn Java của bạn và kiểm tra nó. – Bernard

+0

và nếu bạn có thêm công việc trong tương lai, bạn có thể thêm chúng mà không sửa đổi. Và, nếu bạn làm việc trong một môi trường nhóm, mọi người có thể đã quen thuộc với Jenkins. Và bạn nhận được sửa lỗi (và có thể bổ sung) miễn phí. Và ... – Kevin

+0

Điều này có vẻ khá thú vị! Tôi chắc chắn sẽ cung cấp cho một shot này. Có thể triển khai điều này trên Windows Azure Cloud không? – Danish

0

bạn có thể thử gọi dịch vụ web từ jsp/JSF

+0

Tôi xin lỗi vì tôi không rõ ràng về các yêu cầu của tôi. Tôi đã cập nhật câu hỏi của mình để phản ánh chúng. Tôi đoán điều này sẽ hiệu quả, nhưng tôi muốn xem nhật ký cuộn. Ngoài ra, quá trình có thể chạy lâu hơn thời gian chờ HTTP. – Danish

+0

Tôi đoán dịch vụ web vẫn là tùy chọn trong trường hợp của bạn. phải không? – vkantiya

+1

bạn có thể làm nhật ký cuộn với một số loại sao chổi/giải pháp bỏ phiếu dài. – Kevin

1

Bạn có thể gửi mẫu qua AJAX và sử dụng Ajax với Spring MVC để thăm dò ý kiến ​​cho các mục đăng nhập mới và thêm chúng vào một bảng trên trang của bạn. Dưới đây là một số mã mẫu nhanh cho cuộc gọi AJAX để kiểm tra mục nhập nhật ký mới bằng cách sử dụng phương pháp điều khiển JQuery và Spring MVC để xử lý nó.

JSP:

$.getJSON("logs.htm", { lastLogId: logId }, function(response) { 
    $('#myTable tr:last').after('<tr><td>' + response + '</td></tr>'); 
}); 

Spring MVC Controller (trả về JSON):

@Controller 
public class LogController { 

    @RequestMapping("logs.htm") 
    public @ResponseBody String getLogs(@RequestAttribute("lastLogId") Integer lastLogId, HttpSession sess) { 
     LogList logs = sess.getAttribute("logs"); // just an example using user-defined class "LogList" 
     return logs.getNextLog(lastLogId); 
    } 
} 

Có một vài mẩu tôi không đề cập ở đây (sẽ cần phải lưu trữ log mục để phiên khi log4j Nhật ký, v.v ..), nhưng tôi hy vọng ít nhất là hữu ích khi xem cách làm điều này bằng cách sử dụng Spring MVC và AJAX.

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