配置了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的包。
请问这是什么问题?
8条答案
按热度按时间kadbb4591#
druid-spring-boot-starter 的StatViewServlet参数是读取的 Spring Boot 配置文件中的配置。
4dbbbstv2#
我也遇到了同样的问题,DruidStatViewServlet里面配置的@WebInitParam参数配置的账号密码,初始化时空,你解决了吗,在线等方案
kq0g1dla3#
@lihengming 冒昧问一句,是哪个参数,我没找到啊
6jjcrrmo4#
@l-lionax 试试看这个。
登录密码是druid隐藏的功能,应该是没有完善有bug
jsp-servlet:
class-name: com.alibaba.druid.support.http.StatViewServlet
init-parameters:
loginUsername: druid
loginPassword: druid
dgiusagp5#
@l-lionax
3phpmpom6#
在druid-spring-boot-starter 1.1.9中yml没有找到此配置
@mmdsyl
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: /
wixjitnu8#
根据各位的说明,尤其是@lihengming同学的解释。我可以这么认为吗?
如果引用方式为druid-spring-boot-starter,则StatViewServletc注解上的参数值为空,因为它会读取相应的配置文件参数,而我没有设置;这时可以把这个servelet作为一个bean注入,通过读取配置参数解决。
第二种就是保持代码不变,pom中引入由druid-spring-boot-starter变为druid。这咱普通引入。