druid StatViewServlet读取不到初始参数

inn6fuwd  于 2022-12-31  发布在  Druid
关注(0)|答案(8)|浏览(225)

配置了StatViewServlet的初始参数,但是在ResourceServlet中读取不到配置的初始参数,一直报空指针异常。
配置StatViewServlet代码:

@WebServlet(urlPatterns = "/druid/*",
        initParams={
                @WebInitParam(name="loginUsername",value="admin"),// 用户名
                @WebInitParam(name="loginPassword",value="admin"),// 密码
                @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
        })
public class DruidStatViewServlet extends StatViewServlet {
    private static final long serialVersionUID = 1L;
}

报错信息:

[2018-07-20 10:07:03.632] - 10463 严重 [http-nio-8080-exec-4] --- org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/AI_BD].[statViewServlet]: Servlet.service() for servlet [statViewServlet] in context with path [/AI_BD] threw exception
java.lang.NullPointerException
	at com.alibaba.druid.support.http.ResourceServlet.service(ResourceServlet.java:206)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
        ...

debug信息:

但是将jar包直接换成druid包就能获取到初始化参数了,而不用druid-spring-boot-starter的包。
请问这是什么问题?

kadbb459

kadbb4591#

druid-spring-boot-starter 的StatViewServlet参数是读取的 Spring Boot 配置文件中的配置。

4dbbbstv

4dbbbstv2#

我也遇到了同样的问题,DruidStatViewServlet里面配置的@WebInitParam参数配置的账号密码,初始化时空,你解决了吗,在线等方案

kq0g1dla

kq0g1dla3#

@lihengming 冒昧问一句,是哪个参数,我没找到啊

6jjcrrmo

6jjcrrmo4#

@l-lionax 试试看这个。
登录密码是druid隐藏的功能,应该是没有完善有bug
jsp-servlet:
class-name: com.alibaba.druid.support.http.StatViewServlet
init-parameters:
loginUsername: druid
loginPassword: druid

dgiusagp

dgiusagp5#

stat-view-servlet:
  login-password:

@l-lionax

3phpmpom

3phpmpom6#

在druid-spring-boot-starter 1.1.9中yml没有找到此配置

@mmdsyl

nue99wik

nue99wik7#

我是1.1.2。配置如下:
@726411951
druid:
stat-view-servlet:
login-username:
login-password:
url-pattern: /druid/*
enabled: true
web-stat-filter:
exclusions: '.js,.gif,.jpg,.png,.css,.ico,/druid/'
url-pattern: /

wixjitnu

wixjitnu8#

根据各位的说明,尤其是@lihengming同学的解释。我可以这么认为吗?
如果引用方式为druid-spring-boot-starter,则StatViewServletc注解上的参数值为空,因为它会读取相应的配置文件参数,而我没有设置;这时可以把这个servelet作为一个bean注入,通过读取配置参数解决。
第二种就是保持代码不变,pom中引入由druid-spring-boot-starter变为druid。这咱普通引入。

相关问题