springboot 引用关于servlet注解@WebServlet、@WebFilter等时启动出错的解决方案

使用说明:

springboot中添加过滤器或webservlet时,首先引入关于servlet的jar文件:

		此jar其中包含Tomcat、servlet等
        
			org.springframework.boot
			spring-boot-starter-web
		
或者

		
			org.springframework.boot
			spring-boot-starter-tomcat
		

或者

		
			javax.servlet
			javax.servlet-api
			3.1.0
			provided
		

以上三个jar中都包含有servlet,即可使用 @WebServlet、@WebFilter、@WebListener等注解,然后在启动类中添加注解扫描,@ServletComponentScan 使以上servlet注解自动注册。

启动出错

 java.lang.IllegalStateException: Cannot convert value of type 'com.springboot.conf.DruidStatViewServlet' to required type 'javax.servlet.Servlet' for property 'servlet': no matching editors or conversion strategy found

或者

Caused by: java.lang.ClassNotFoundException: org.springframework.web.context.WebApplicationContext

 

原因分析

俺不晓得,据错误提示似乎是缺少相对应的servlet、filter、listen等属性

待俺寻的原因......

 

解决方案

此方案有点憋屈,但是问题暂时解决

  • 在需要@WebServlet的类中,实现Servlet接口,如

@WebServlet(urlPatterns = "/druid/*", initParams = { @WebInitParam(name = "allow", value = "127.0.0.1"), // IP白名单 (没有配置或者为空,则允许所有访问)
	@WebInitParam(name = "deny", value = "192.168.0.1"), // IP黑名单 (存在共同时,deny优先于allow)
	@WebInitParam(name = "loginUsername", value = "admin"), // 用户名
	@WebInitParam(name = "loginPassword", value = "admin"), // 密码
	@WebInitParam(name = "resetEnable", value = "true")// 禁用HTML页面上的“Reset All”功能
})
public abstract class DruidStatViewServlet extends StatViewServlet implements Servlet {
    // 不需要实现接口中的方法,直接abstract抽象吧
}
  • 在需要@WebFilter的类中,实现Filter接口,如

@WebFilter(filterName = "druidWebStatFilter", urlPatterns = "/*", initParams = { @WebInitParam(name = "exclusions", value = "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*") })
public abstract class DruidStatFilter extends WebStatFilter implements Filter {
    // 不需要实现接口中的方法,直接abstract抽象吧
}

 

  • @WebListener 应该类似

俺用的jar

		
			org.springframework.boot
			spring-boot-starter-web
			
			
				
					org.springframework.boot
					spring-boot-starter-tomcat
				
			
		
		
		
			org.springframework.boot
			spring-boot-starter-tomcat
			provided
		

 

 

你可能感兴趣的:(springboot)