【SpringBoot苍穹外卖】debugDay01

1、编译时报错找不到符号

在学黑马程序员的苍穹外卖项目,刚开始学,想用maven编译一下代码,结果报错,找不到符号。本着先理解原则,看着能找到这个变量呀。

[ERROR] /D:/BaiduNetdiskDownload/苍穹外卖/资料/资料/day01/后端初始工程/sky-take-out/sky-common/src/main/java/com/sky/utils/WeChatPayUtil.java:[191,100] 找不到符号
  符号:   方法 getPrivateKeyFilePath()
  位置: 类型为com.sky.properties.WeChatProperties的变量 weChatProperties

解决方案:修改jdk版本。

查看当前项目的JDK版本

在IDE中查看(以IntelliJ IDEA为例)
  1. 打开项目。

  2. 点击 File -> Project Structure(或直接按 Ctrl+Alt+Shift+S)。

  3. 在左侧选择 Project,查看 Project SDK 和 Project language level

    • Project SDK 是项目使用的JDK版本。

    • Project language level 是项目的语言级别(通常与JDK版本对应)。

  4. 如果JDK版本不正确,可以点击 New... 添加本地已安装的JDK

看见弹幕说是jdk8不可以,11和17可以。没想到我的jdk23也不可以。

2、登录时一直循环报错。

2025-02-09 20:50:32.822 ERROR 26696 --- [eate-1562019228] com.alibaba.druid.pool.DruidDataSource   : create connection SQLException, url: jdbc:mysql://localhost:3306/sky_take_out?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true, errorCode 1045, state 28000

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.30.jar:8.0.30]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.30.jar:8.0.30]
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-java-8.0.30.jar:8.0.30]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448) ~[mysql-connector-java-8.0.30.jar:8.0.30]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-java-8.0.30.jar:8.0.30]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.30.jar:8.0.30]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1651) ~[druid-1.2.1.jar:1.2.1]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1717) ~[druid-1.2.1.jar:1.2.1]
	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2785) ~[druid-1.2.1.jar:1.2.1]

解决方案:

sky-take-out\sky-server\src\main\resources\application-dev.yml文件中修改自己的数据库登录密码。

这样才能和数据库连接起来,因为我前面在navicat改了admin登录密码。

3、yapi打不开

### 苍穹外卖项目编译或运行时符号到错误解决方案 当遇到苍穹外卖项目中编译或运行时出现的符号到错误,这类问题通常是由于类路径配置不当、依赖缺失或是某些资源文件未能正确加载引起的。以下是详细的排查和解决办法: #### 1. 检查构建工具配置 确保项目的构建工具(如Maven或Gradle)配置无误。对于Maven而言,`pom.xml` 文件应当包含所有必要的依赖项;而对于Gradle,则需确认 `build.gradle` 中声明了所需库。 如果缺少特定库可能导致不到相应的方法或变量定义,在这种情况下应依据官方文档补充相应的依赖条目[^1]。 #### 2. 验证IDE设置 有时集成开发环境(IDE) 的索引机制可能出现异常,造成即使存在正确的导入语句也无法识别外部包内的成员。尝试清理 IDE 缓存并重新同步项目结构来修复此类情况。 另外也要注意检查模块间的相互引用关系是否合理,防止循环依赖引发冲突。 #### 3. 审视源码逻辑 仔细审查发生报错位置附近的代码片段,特别是那些涉及第三方API调用的地方。可能存在拼写失误或者是版本更迭带来的接口变更等问题待修正。 例如,在处理菜品信息更新功能(`PUT`)请求时,务必保证所使用的实体属性名称与数据库字段保持一致,并且遵循RESTful API设计原则[^4]。 ```java // 修改菜品示例代码 public class DishService { public void updateDish(Dish dish){ // 更新菜品的具体实现... } } ``` #### 4. 排除加密算法差异影响 考虑到不同阶段间的数据一致性维护,比如前后端交互过程中涉及到的身份验证环节可能会因为加解密策略不匹配而导致意外状况的发生。具体表现为尽管输入正确的凭证却始终无法通过校验。 针对这种情况建议统一采用相同的哈希函数(如MD5),并且确保服务端存储以及客户端提交的内容均经过相同方式转换后再做比较[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值