JavaMelody監控spring、struts

  Struts監控

Struts的監控相對來講要簡單多了,只要按照下面的步驟,確定是沒有問題的。html

  第一步,導入必要的jar包,須要的jar包前面已經提到過了。java

  一個是javamelody.jar,另外一個是jrobin-x.jar

web

  第二步,須要在web.xml中添加監控對應的過濾器正則表達式

<filter>
  <filter-name>monitoring</filter-name>
  <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
 
  <init-param>
   <param-name>log</param-name>
   <param-value>true</param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>monitoring</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
<listener>
  <listener-class> net.bull.javamelody.SessionListener</listener-class>
 </listener>

與struts2集成時新建struts-monitoring.xml文件

<? xml version= "1.0" encoding ="UTF-8" ?>
<! DOCTYPE struts PUBLIC
       "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
       "http://struts.apache.org/dtds/struts-2.3.dtd" >
<struts>
  <package name= "default" extends ="struts-default,json-default" >
  <interceptors>
      <interceptor name ="monitoring" class ="net.bull.javamelody.StrutsInterceptor" />         
                   <interceptor-stack name ="myStack" >
                           <interceptor-ref name ="monitoring" />
                           <interceptor-ref name ="defaultStack" />
                   </interceptor-stack>
           </interceptors>           
           <default-interceptor-ref name ="myStack" />
    </package>
</struts>

其餘struts配置文件繼承default和引用myStack,以下所示:

<package name ="*" extends ="default" namespace ="/" >
             <global-results>
                   <result name= "error" >page/error.html </result>
             </global-results>
             <action name= "*_*" class ="{1}Action" method ="{2}" >
                   <result name= "index" >page/{1}/index.html </result>
                   <result name= "json" type ="json" >json_result </result>
                   <interceptor-ref name ="myStack" />
             </action>
       </package>

 上面三步,就算是配置完了。spring

  若是不觸發監控事件,好比點擊某些東西進行響應跳轉,使用struts,那麼是監控不到數據的。雖然有顯示對應的圖片,可是圖片上的數據都是0,Nan或者下方的表爲空,這些都是沒有觸發監聽事件的緣由。apache


與Spring集成時添加以下信息對接口進行監控:

JavaMelody針對於spring的監控是到方法級別的,咱們能夠監控到某個類的某個方法,所以須要使用到AOP裏面的pointcut進行監聽。json

  下面看一下主要的監聽配置:app

  第一步,依然是導入必備的jar包,上面說的兩個,再也不重複了。url

 

  第二步,加載monitoring-spring.xml以及咱們本身的applicationContext.xml配置文件。spa

  若是想要在加載web.xml的時候讀取spring的配置文件,須要實現一個監聽器

<listener>2         <listener-class>3             org.springframework.web.context.ContextLoaderListener4         </listener-class>5     </listener>

而後在web.xml中,添加spring文件路徑。經過這隻上下文參數來設置

<context-param>
  <param-name> contextConfigLocation</param-name>
             <param-value>
                  classpath:net/bull/javamelody/monitoring-spring.xml
                  /WEB-INF/classes/bean.xml
             </param-value>
 </context-param>

上面第一行,定義了監控應用的spring配置文件,下面是咱們本身的spring的配置文件。

  第三步,經過正則表達式,定位方法

<bean id= "facadeMonitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor" >
         <property name ="pointcut" >
                 <bean class="org.springframework.aop.support.JdkRegexpMethodPointcut" >
                         <property name ="pattern" value="org.melody.*.*.service.*" /><!--正則表達式-->
                 </bean>
         </property>
</bean>



lll

相關文章
相關標籤/搜索