Durid开启filter:wall报错&配置spring监控无记录未生效

Struggle马里奥 发布于 2016/08/23 17:32
阅读 701
收藏 0

用的版本是最新的druid-1.0.24

配置:

    <!-- alibaba druid 数据库连接池 -->

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"  init-method="init"  destroy-method="close">
    <!-- 数据库基本信息配置 -->
    
    <!--  数据源名称 -->
    <!-- 如果没有配置,将自动会生成一个名字,格式是:"DataSource-" + System.identityHashCode(this) -->
    <property name="name" value="druid_steel_app" />
    <!-- 连接数据库的url,不同数据库不一样 -->
    <property name="url" value="${druid.url}" />
    <!-- 连接数据库的用户名 -->
    <property name="username" value="${druid.username}"/>
    <!-- 连接数据库的密码 -->
    <property name="password" value="${druid.password}"/>
    <!-- 这一项可配可不配,如果不配置druid会根据url自动识别dbType -->
    <property name="driverClassName" value="${druid.driverClassName}" />
    <!-- 配置扩展插件  -->
    <property name="filters" value="stat,wall"/><!-- ${druid.filters} -->
    <!-- 最大并发连接数 -->
    <property name="maxActive" value="${druid.maxActive}" />
    <!-- 初始化连接数量 -->
    <property name="initialSize" value="${druid.initialSize}" />
    <!-- 配置获取连接等待超时的时间 -->
    <property name="maxWait" value="${druid.maxWait}" />
    <!-- 最小空闲连接数 -->
    <property name="minIdle" value="${druid.minIdle}" />
    <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
    <property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
    <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
    <property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
    <!-- 检测连接是否有效的sql  -->
    <property name="validationQuery" value="${druid.validationQuery}" />
    <property name="testWhileIdle" value="${druid.testWhileIdle}" />
    <property name="testOnBorrow" value="${druid.testOnBorrow}" />
    <property name="testOnReturn" value="${druid.testOnReturn}" />
    <property name="maxOpenPreparedStatements" value="${druid.maxOpenPreparedStatements}" />
    <!-- 打开 removeAbandoned 功能 -->
    <property name="removeAbandoned" value="${druid.removeAbandoned}" />
    <!-- 1800 秒,也就是 30 分钟 -->
    <property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" />
    <!-- 关闭 abanded 连接时输出错误日志 -->
    <property name="logAbandoned" value="${druid.logAbandoned}" />
</bean>

<!-- 配置druid监控spring jdbc -->
    <bean id="druid-stat-interceptor"
        class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
    </bean>
    <bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut"
        scope="prototype">
        <property name="patterns">
            <list>
                <value>com</value><!--扫描service -->
                <value>com</value><!--扫描dao -->
            </list>
        </property>
    </bean>

    <aop:config proxy-target-class="true">
        <aop:advisor advice-ref="druid-stat-interceptor"
            pointcut-ref="druid-stat-pointcut" />
    </aop:config>

#Druid
#
druid.url=jdbc\:oracle\:thin\:****\:1521\:***
#
druid.driverClassName: oracle.jdbc.driver.OracleDriver
#
druid.username= j186_***
#
druid.password= j186_***
#
druid.filters=stat
#,wall,log4j
#stat启用sql监控,wall启用sql防火墙监控
#
druid.maxActive= 20
#
druid.initialSize= 1
#
druid.maxWait= 60000
#
druid.minIdle= 10
#
druid.maxIdle= 15
#
druid.timeBetweenEvictionRunsMillis= 60000
#
druid.minEvictableIdleTimeMillis= 300000
#
druid.validationQuery= SELECT 'X' FROM DUAL
#
druid.testWhileIdle= true
#
druid.testOnBorrow= false
#
druid.testOnReturn= false
#
druid.maxOpenPreparedStatements= 20
#
druid.removeAbandoned= true
#
druid.removeAbandonedTimeout= 1800
#
druid.logAbandoned= true

########--druid----end --########

web配置:

<!-- Druid连接池监控START  -->
    <filter >
        <filter-name> DruidWebStatFilter</filter-name>
        <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
        <init-param>
            <param-name>exclusions </param-name>
            <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value >
        </init-param>
        <init-param>
            <param-name>profileEnable</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter >
    <filter-mapping>
        <filter-name>DruidWebStatFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>DruidStatView</servlet-name>
        <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
        <init-param>
        <!-- 允许清空统计数据 -->
            <param-name>resetEnable</param-name>
            <param-value>true</param-value>  
        </init-param>  
    <!--配置druid登录密码  start  -->
<!--     <init-param>   -->
          <!-- 用户名 -->  
<!--         <param-name>loginUsername</param-name>   -->
<!--         <param-value>admin</param-value>   -->
<!--     </init-param>   -->
<!--     <init-param>   -->
         <!-- 密码 -->  
<!--         <param-name>loginPassword</param-name>   -->
<!--         <param-value>admin</param-value>   -->
<!--     </init-param>  -->
    <!--配置druid登录密码  end  -->
        <init-param>
        <!--  允许访问的ip-->
            <param-name>allow</param-name>
            <param-value>127.0.0.1,10.0.2.2</param-value>
        </init-param>
        <init-param>
        <!-- 禁止访问的ip 不填写表示只允许allow中的ip访问-->
            <param-name>deny</param-name>
            <param-value></param-value>
        </init-param>
    
    </servlet>
    <servlet-mapping>
        <servlet-name>DruidStatView</servlet-name>
        <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>
    <!--  Druid连接池监控END -->

Durid开启filter:wall报错如下:

严重: Servlet.service() for servlet DruidStatView threw exception
java.lang.IllegalArgumentException: class [J and class [J not supported.
    at com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils.add(SQLEvalVisitorUtils.java:1844)
    at com.alibaba.druid.stat.DruidStatManagerFacade.mergWallStat(DruidStatManagerFacade.java:256)
    at com.alibaba.druid.stat.DruidStatManagerFacade.mergeNamedList(DruidStatManagerFacade.java:280)
    at com.alibaba.druid.stat.DruidStatManagerFacade.mergWallStat(DruidStatManagerFacade.java:251)
    at com.alibaba.druid.stat.DruidStatManagerFacade.getWallStatMap(DruidStatManagerFacade.java:177)
    at com.alibaba.druid.stat.DruidStatService.getWallStatMap(DruidStatService.java:287)
    at com.alibaba.druid.stat.DruidStatService.service(DruidStatService.java:133)
    at com.alibaba.druid.support.http.StatViewServlet.process(StatViewServlet.java:162)
    at com.alibaba.druid.support.http.ResourceServlet.service(ResourceServlet.java:252)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:83)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)

求助@wenshao

加载中
返回顶部
顶部