## 工程启动准备 1. 由于升级了JDK17,Java 模块化系统(Java Module System)的安全限制导致的针对反射等场景有可能会出现如下错误: ~~~ Cause: java.lang.reflect.InaccessibleObjectException: Unable to make field protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h accessible: module java.base does not "opens java.lang.reflect" to unnamed module @223aa2f7 ~~~ 2. 这种情况,我们需要在启动时增加对应配置: ~~~ --add-opens java.base/java.lang.reflect=ALL-UNNAMED ~~~ 3. 具体操作如下,针对启动类依次添加配置即可 ![](https://img.kancloud.cn/7c/92/7c926e4c843782bb6ead35c89ec15488_2516x1356.png) 4. jar包启动时也需要加入此配置,具体命令如下 ~~~ java --add-opens java.base/java.lang.reflect=ALL-UNNAMED -jar your-application.jar ~~~ ## 工程启动顺序 1. 先启动`redis`、`mysql`、`nacos`、`sentinel`等基础服务 2. 启动除`blade-gateway`之外的项目 3. 最后启动`blade-gateway` ## 工程启动开始 1. 批量启动红框内的基础服务,这是保证系统可以运行的最低要求服务 ![](https://img.kancloud.cn/bd/2e/bd2e6adeb9df43a209c4fe17d8e0d462_560x642.png) 2. 启动完毕后可以尝试启动其他服务进行验证 ## 验证服务是否启动成功 1. 若看到下图,则说明服务启动成功 ![](https://img.kancloud.cn/40/c6/40c628eb2d3c4262f6d33dbcdf7eb6b4_3352x790.png) 2. 打开nacos http://localhost:8848/nacos 查看服务列表 ![](https://img.kancloud.cn/fd/23/fd230cbe63a51f070e6c85968fa661c4_2498x1846.png) 2. 打开一个服务的详情,可以看到健康状态为true,注册成功 ![](https://img.kancloud.cn/b3/9a/b39ab9b1c8f8a62d32689df7c8a075dc_2582x1804.png) 3. 注意⚠️:若nacos配置后工程无法启动成功,那一定是有配置遗漏,具体注意点请看:[https://sns.bladex.cn/q-41.html](https://sns.bladex.cn/q-41.html)