Tôi đang sử dụng JAMon và tôi muốn sử dụng jamon.war
để theo dõi ứng dụng của mình. Tuy nhiên, ứng dụng của tôi và ứng dụng jamon.war
có các trình nạp lớp khác nhau và do đó chúng không thấy các biến tĩnh của nhau (nơi dữ liệu được lưu trữ, theo như tôi hiểu). Tôi đang nhận được dữ liệu thích hợp khi tôi gọi MonitorFactory.getReport()
trong ứng dụng của mình.Sử dụng jamon.war trên tomcat
Cách làm việc này?
Phải, nếu bạn chia sẻ một cái lọ giữa các ứng dụng khác nhau, bạn nên làm điều đó thông qua thư mục tomcat/lib. Mỗi webapp có trên thực tế là trình nạp lớp riêng của nó, nhưng bạn có thể đặt chúng trong giao tiếp thông qua trình nạp lớp phổ biến. Có một cái nhìn [ở đây] (http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html). – javanna
Bạn có thể quan sát cùng một vấn đề với EhCache đã chia sẻ 'CacheManager' (cùng một trình quản lý cho tất cả các WAR trong Tomcat) - nếu' ehcache.jar' được đóng gói với mỗi ứng dụng, mỗi người sẽ có 'CacheManager' của riêng nó kể từ khi EhCache sử dụng' trường tĩnh' để chia sẻ người quản lý ... Khi 'ehcache.jar' được đặt trong thư mục'/lib', cả hai ứng dụng đều chia sẻ cùng một 'CacheManager' và cache. –