Part 2 - 导入项目并进行开发调试

2021-11-06
5分钟阅读时长

【版本】

当前版本号v20241028

版本修改说明
v20241028新增常见问题,连接MySQL8出现的问题
v20211125增加常见问题
v20211106初始化版本

【实验名称】 实验2.1 导入 Web 项目

【实验目的】

  • 掌握 Java Web 项目的导入和配置
  • 掌握数据库的连接和配置

【实验环境】

  • 内存:至少4G
  • 硬盘:至少空余10G
  • 操作系统: 64位 Windows系统。

【实验资源】

下载地址:

链接:https://pan.baidu.com/s/1qy0QpYbG_dWT8fKx3ZjvnQ 
提取码:heis

资源说明:

  • travel-stu.zip

【实验步骤】

  1. 获取travel-stu.zip使用 IDEA 打开 travel-stu 项目目录。

  2. 导入项目以后,打开 IDEA File -> Settings菜单。找到Maven 选项,指向你安装的 Maven 路径。

  1. 右键点击 pom.xml,选择Maven -> Reload project 下载 Maven 包依赖。

  1. 参考Part 1,启动 MySQL 数据库和 Redis 。

  2. 找到src/main/resources/db/migration目录,按脚本名称顺序执行 SQL 脚本,构建数据库。

  3. 找到src/main/resources/druid.properties,配置相应的数据库连接URL,用户名和密码。

提示:数据库名称、用户名和密码可以在src/main/resources/db/migration/V001__CREATE_DB.sql找到。

  1. 打开 IDEA Build -> Build project菜单,开始构建项目。

  2. 新增一个名为redeploy 运行任务,其中Command Line输入以下内容:

compile war:exploded

  1. 运行redeploy 任务。

  2. 新增一个名为Application的 Java 运行任务,指向com.zjtec.travel.Application

  3. 运行Application任务。

  4. 访问http://localhost:8082 可以看到网站首页。

【实验名称】 实验2.2 使用 IDEA 调试模式重新构建项目

【实验目的】

  • 掌握 Java Web 项目开发过程中重新构建技巧

【实验环境】

  • 内存:至少4G
  • 硬盘:至少空余10G
  • 操作系统: 64位 Windows系统。

【实验说明】

在开发的过程中,如果修改了代码可能需要重新构建项目、并重新发布,使用自动任务的方式可以提升我们的开发调试效率。

【实验步骤】

  1. 停止运行Application任务。并使用Debug模式启动。

  1. 找到旅游网站首页对应的网页文件src/main/webapp/index.html

  2. 在约108行找到以下代码,并修改其中的价格。从889修改为899。

 <div class="price">网付价<em>¥</em><strong>889</strong><em>起</em></div>
  1. 重新构建项目。

  2. 运行redeploy任务,重新发布项目。

  3. 访问[http://localhost:8082],并刷新查看首页的第一个旅游产品价格是否修改为了899。

【常见问题】

1. 运行 Application 的时候提示错误:找不到或无法加载主类com.zjtec.travel.Application

答:只需要重新构建项目。

2. 使用 MySQL 8,IDEA 运行 Application 控制台提示“public key retrieval is not allowed”错误。

答:这个是由于没有开启允许从服务器直接下载加密公钥提示出错。

  • (1) 修改travel-stu/src/main/resources/druid.properties文件,在URL后面加入参数设置allowPublicKeyRetrieval=true,注意使用&符号作为分隔符。
url=jdbc:mysql://localhost:3306/travel?useUnicode=true&characterEncoding=UTF-8
  • 修改为
url=jdbc:mysql://localhost:3306/travel?useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true

3. 连接数据库提示 SSL 相关错误

答:需要关闭连接 MySQL 的 SSL选项。

  • (1) 修改travel-stu/src/main/resources/druid.properties文件,在URL后面加入参数设置useSSL=false,注意使用&符号作为分隔符。
url=jdbc:mysql://localhost:3306/travel?useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true
  • 修改为
url=jdbc:mysql://localhost:3306/travel?useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=false

4. 使用MySQL 8数据库,启动项目 Application 的时候,出现validateconnection false错误提示。

答:部分包不兼容 MySQL 8,需要更新包的版本。

  • (1)修改项目Maven配置文件travel-stu/pom.xml,MySQL连接驱动包的版本
    <!-- MySQL 连接驱动 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
    </dependency>
  • 修改为
    <!-- MySQL 连接驱动 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.33</version>
    </dependency>
  • (2)修改项目Maven配置文件travel-stu/pom.xml,Druid的版本。
    <!-- 数据库连接池的包 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.9</version>
    </dependency>
  • 修改为
    <!-- 数据库连接池的包 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.23</version>
    </dependency>

5. 连接 MySQL 连接出现以下时区(Time Zone)错误。

Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

答:MySQL 使用系统的时区设置来确定时间,但是系统时区设置是中文有可能会导致错误。

  • (1)通过 Windows 搜索找到“服务”。

  • (2)找到服务里面的 MySQL 或 MySQL80 服务,查看“可执行文件路径”,找到MySQL 的配置文件 my.ini 的所在路径。

  • (3)文本编辑器打开my.ini,在[mysqld]组下加入以下配置,表示默认时区为东8区。
default-time-zone='+08:00'

扫码或长按识别访问