tomcat部署Springboot项目遇到的问题

一、启动过滤器失败,上下文找不到实例对象

1、表现

bean对象通过@resources注入,导致在配置过滤器的时候,注入失败抛出异常。

2、解决办法

在保存的类中,替换注入的类的注解为@Autowired

3、问题出现原因

**首先明白两个注解的区别:**

(1) **提供方:**@Autowired是Spring提供的,@Resource是JSR-250提供的,它是Java标准,绝大部分框架都支持。

(2) **默认注入方式:**@Autowired默认按byType自动装配,而@Resource默认byName自动装配。

(3) **作用范围:**@Autowired能够用在:构造器、方法、参数、成员变量和注解上,而@Resource能用在:类、成员变量和方法上。

二、在配置FIlter的时候出现AbstractMethodError

1、表现

配置FIlter时候initFilter时候抛出异常AbstractMethodError.


2、解决办法

在实现FIlter的类中实现init()方法和destory()方法。

3、问题出现原因

根本原因A依赖于B,但是执行的时候发现类B的定义发生了改变,这个改变是针对编译的时候发生了改变,也就是说将类A由java文件编译成.class文件的时候用到了类B的class文件,但是在执行的时候JVM发现真正用到的B的class文件和编译的时候用的不是一个了。



三、tomcat自动配置的项目路径导致项目静态文件访问失败

1、出现原因

在html中写的是绝对路径,而不是相对路径,所以tomcat中的应用请求时候,绝对路径是无法定位到应用内部文件中的静态资源。


2、解决办法

在Server.Xml文件中,的Host节点中配置Context。并且指定项目路径不能在webapps中(不然会导致项目加载两次)。

```xml

   <Context path="" docBase="C:\ chapter03\helloapp" reloadable="true"/>    

```

这样就可以直接通过`http://localhost:8080/`直接访问项目,就不需要添加前缀

3、问题出现原因

URL无法定位到资源。


上一篇:蚂蚁金服分布式链路跟踪组件 SOFATracer 总览 | 剖析


下一篇:Java Executor 框架