javaweb项目转变成maven项目问题记录

1.第三方jar包的导入

虽然pom.xml文件配置依赖maven可以帮我们下载很多jar包,但是少数的jar包maven仓库获取不到,需要我么自己手动去下载,那么就有自己手动导入。

Project Structure > Libraries

image

2.配置文件的存放

连接数据库的访问信息都存在了db.properties中,在JavaEE的存放地址是放在src的根目录下,而maven的web项目结构不太一样,

image

所以在main目录下创建一个resources目录,将db.properties放置在resources,项目build的时候才会把资源文件打包到WEB-INF/classes

3.连接数据库的url参数

 url=jdbc:mysql://localhost:3306/website?serverTimezone=UTC&characterEncoding=UTF-8</pre>

在linux上的javaweb项目没有报错,但是win10下maven项目报错了,因为时差因素相差8个小时

报错内容

 java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents</pre>

解决方案就是在后面加上serverTimezone=UTC,我是解决了,有人把他改为asia/shanghai,若后面遇到这个问题我在来更新这部分时差因素会有什么结果

4.又是奇怪的错误

org.apache.jasper.JasperException: 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

解决方案:网上看了一大堆,把jar包下载下来然后把tld文件放在web-inf下面,,,看得我云里雾里,有这么复杂吗?

好了,说下maven的解决方案,没有加一个dependency解决不了的问题,这时候发现maven的好处了,虽然他给我带来很多没遇过的bug。

<dependency>
  <groupId>javax.servlet.jsp.jstl</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
  </dependency></pre>

5.又是奇怪的错误+1

org.apache.jasper.JasperException: 未能加载或实例化TagLibraryValidator类:[org.apache.taglibs.standard.tlv.JstlCoreTLV]

  <dependency>
  <groupId>org.glassfish.web</groupId>
  <artifactId>jstl-impl</artifactId>
  <version>1.2</version>
  </dependency>

添加这个jstl-impl的jar包,成功解决

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容