2009-10-15 19 views
18

Xin chào, tôi muốn theo dõi một ứng dụng Java bằng trình duyệt nhưng đồng thời sử dụng cơ sở hạ tầng JMX hiện có.Có cầu nối JMX - REST nào không?

Tôi biết rằng JMX cung cấp giao diện HTTP nhưng tôi nghĩ rằng nó cung cấp một gui web chuẩn và không thể kết hợp chức năng của nó với một hệ thống hiện có.

Bạn có biết về bất kỳ giao diện REST nào cho JMX không?

Nghiên cứu của tôi trên google hiện cho thấy rằng có một project hoạt động tương tự. Đây có phải là lựa chọn duy nhất không?

Trả lời

3

Tomcat cung cấp JMX Proxy Servlet trong ứng dụng Trình quản lý của nó. Tôi không nghĩ rằng đó chính xác là REST, nhưng nó là không trạng thái và được xây dựng từ các yêu cầu HTTP đơn giản, vì vậy nó phải đủ gần.

+0

Tomcat JMX Proxy không hỗ trợ JSON, XML hoặc loại mã hóa khác. Trên thực tế nó không hỗ trợ Accept key trong header. –

1

Bạn có thể muốn xem jmx4perl. Nó đi kèm với một servlet đại lý, ủy nhiệm yêu cầu REST tới các cuộc gọi JMX cục bộ và trả về một cấu trúc JSON với các câu trả lời. Nó hỗ trợ đọc, viết, exec, danh sách (danh sách các mbeans) và các hoạt động tìm kiếm và biết cách đi sâu vào các cấu trúc dữ liệu phức tạp thông qua một biểu thức XPath giống như. Xem mô tả giao thức để biết thêm chi tiết.

Bản phát hành sắp tới cũng có thể xử lý yêu cầu hàng loạt (== nhiều lần) và thêm khả năng gửi yêu cầu JSON thay thế cho yêu cầu REST GET thuần túy.

Trong một trong các bản phát hành tiếp theo, sẽ hỗ trợ chế độ proxy sao cho không có servlet đại lý nào cần được triển khai trên nền đích mà chỉ trên máy chủ proxy trung gian.

23

Jolokia là một mới (tại thời điểm này) JMX Agent bạn có thể cài đặt trong JVM và hiển thị MBeanServer qua HTTP ở định dạng JSON.

1

MX4J là thay thế khác, trích dẫn dưới đây từ trang chủ của nó -.

MX4J là một dự án để xây dựng một thực hiện mã nguồn mở của Extensions Java (TM) Quản lý (JMX) và Remote JMX Thông số API (JSR 160) và để xây dựng các công cụ liên quan đến JMX.

2

Để biết thêm thông tin, gần đây tôi đã thêm một máy chủ web nhỏ vào gói SimpleJMX của mình. Nó cho thấy các bean từ nền tảng MBeanServer đến HTTP thông qua Jetty nếu trong classpath. Ngoài ra còn có các phiên bản văn bản của tất cả các trang giúp bạn dễ dàng xóa.

// create a new JMX server listening on a specific port 
JmxServer jmxServer = new JmxServer(8000); 
jmxServer.start(); 

// register any beans to jmx as necessary 
jmxServer.register(someObj); 

// create a web server publisher listening on a specific port 
JmxWebServer jmxWebServer = new JmxWebServer(8080); 
jmxWebServer.start(); 

Có một little test program cho biết nó đang hoạt động. Đây là hình ảnh của java.lang:type=Memory được truy cập từ trình duyệt. Như bạn có thể thấy đầu ra là HTML rất cơ bản.

enter image description here

+0

Tôi thực sự thích dự án nhưng có thể đáng để chỉ ra rằng trình kết nối không hoạt động trên cầu cảng 9 nên sử dụng cầu nối 8. –

+0

Vì vậy, tôi đã cố gắng thêm hỗ trợ Jetty 9 vào phiên bản SimpleJMX 1.10 @ShawnVader. Đoán nó không hoạt động? Tôi không có Java 7 không may vì vậy tôi không thể kiểm tra 9 bản thân mình. Ping tôi tại http://256.com/gray/email/ nếu bạn muốn tôi giúp bạn làm cho nó hoạt động. – Gray

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