苍穹外卖day01——关于导入苍穹外卖项目,pom文件中的依赖爆红问题

1.修改jdk版本

本人一开始使用的是21,后面把jdk换成17就好了。具体解决方法如下:

首先在Project Structure里修改:

其次在Settings里修改:

2.添加阿里云镜像源

通过自己下载的maven,对他的conf目录下的setting.xml文件做镜像配置。

<mirror>  
        <id>alimaven</id>  
        <name>aliyun maven</name>  
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>          
     </mirror>

3.题主还遇到了再启动项目时 报错了java: 不再支持源选项 5。请使用 7 或更高版本。遇到这个报错可以试试以下方法

在maven项目中出现这个问题,解决方法:
在pom文件中添加以下,指定你需要的jdk版本即可:

  <properties>
    <java.version>17</java.version>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
  </properties>


 

### 苍穹外卖项目中 FastJSON 的异常或错误处理 在苍穹外卖项目中,FastJSON 是用于序列化和反序列化的工具库之一。如果遇到与 FastJSON 相关的异常或错误,通常可以从以下几个方面分析并解决问题。 #### 1. 异常捕获机制 `BaseException` 继承自 `RuntimeException`,这表明它是一个运行时异常[^1]。为了更好地管理这些异常,可以在代码中引入统一的异常处理器。例如: ```java public class CustomExceptionHandler extends RuntimeException { public CustomExceptionHandler(String message) { super(message); } } ``` 当使用 FastJSON 进行对象转换时,可能会抛出诸如 `JSONException` 或其他类型的异常。因此建议在调用 FastJSON 方法的地方增加 try-catch 块以捕捉潜在问题。 #### 2. WebSocket 数据传输中的 JSON 序列化 在通过 WebSocket 向客户端发送消息的过程中,可能由于数据格式不匹配或者网络中断等原因引发异常[^2]。以下是改进后的代码示例: ```java try { Map<String, Object> map = new HashMap<>(); map.put("type", 1); // 1 表示来单提醒,2 表示客户催单 map.put("orderId", ordersDB.getId()); map.put("content", "订单号:" + outTradeNo); String json = JSON.toJSONString(map); webSocketServer.sendToAllClient(json); } catch (Exception e) { throw new CustomExceptionHandler("WebSocket 发送失败: " + e.getMessage()); } ``` 此部分代码增加了对异常情况的处理能力,并将具体错误信息封装到自定义异常中以便后续排查。 #### 3. OrderService 中的方法实现 对于 `OrderService` 接口内的 `reminder` 方法[^3],其功能可能是触发某种业务逻辑(如通知骑手取餐)。假设该方法内部也需要依赖于 FastJSON 来完成某些操作,则同样需要注意可能出现的异常状况。 ```java @Override public void reminder(Long id) throws CustomExceptionHandler { Orders order = ordersRepository.findById(id).orElseThrow(() -> new CustomExceptionHandler("未找到对应订单")); try { Map<String, Object> dataMap = new HashMap<>(); dataMap.put("action", "remind"); dataMap.put("order_id", id.toString()); String jsonData = JSON.toJSONString(dataMap); notifyRider(order.getRiderId(), jsonData); } catch (Exception ex) { throw new CustomExceptionHandler("用户催单失败:" + ex.getMessage()); } } private void notifyRider(String riderId, String notificationData){ // 实现具体的骑手通知逻辑... } ``` 上述代码片段展示了如何在一个服务层方法里安全地运用 FastJSON 并妥善应对各种意外情形。 #### 4. 关于图表展示的支持 虽然本主题主要讨论的是 FastJSON 及其相关错误处理,但如果涉及到前端页面上的动态数据显示,则可以考虑集成 Apache ECharts 工具来进行可视化呈现[^4]。不过这是另一个独立的技术领域,在这里不做深入探讨。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值