作为一个新手,在配置过程中出现了很多问题,导致服务器不能正常启动,即便启动了也报了一些错。直到第一次测试请求数据正确获得后才敢记录下这些文字,以便自己日后复习注意,如果能帮助到一些像我一样的新手也是更好的。
首先,配置过程中需要注意一些细节,比如WEB-INF目录下的web.xml文件的版本要在2.5以上,而用maven自动构建的项目一般在2.5以下,这就导致服务器不能正常启动,修改web.xml的版本在上一篇博文中已经阐述。
其次,在POM.xml文件中配置依赖项的时候,以来的mysql-connector-java.jar包千万不要追求最新版本,我使用8.0后的版本就会报错,报错如下所示: Loading class com.mysql.jdbc.Driver’. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 改为5.1.26版本后就正常了。
有时候会出现如下错误:The POM for xxx is invalid, transitive dependencies (if any) will not be available. 一般是因为jar包不完整或异常(种种原因),可以重新下载相关jar包。
当报如下错误时:SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”. 需要在POM.xml文件中添加如下依赖:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.2</version>
</dependency>
最好版本也是1.7.2.
当出现如下java.lang.InstantiationException 异常时,就要知道:这个异常多半是由于通过反射在实例化的时候,对应的类里面覆盖了无参构造而导致无法实例化,由于创建类的时候,默认有一个无参构造,前提是没有其他构造方法,如果没有明确的将无参构造写出来,该类就是缺少无参构造了,也就导致了无法实例化。所以建议在创建类的时候,最好还是保留(显式的写出来)无参构造。