开源项目AG-Admin在本地运行时遇到的问题和解决方法
过程参考:https://blog.csdn.net/u011781521/article/details/79056974
一:步骤:
- 1.源码下载项目:https://gitee.com/zerglou/ace-security
- 2.使用idea导入源码
- 3.redis安装,下载地址: https://redis.io/
- 4.RabbitMQ运行环境 ErlangOTP安装,下载地址:http://www.erlang.org/downloads
- 5.RabbitMQ安装,下载地址:http://www.rabbitmq.com/download.html
- 6.RabbitMQ-Plugins插件安装:在rabbitmq的安装目录下的sbin目录内使用cmd执行:rabbitmq-plugins enable rabbitmq_management 然后重启服务,使用命令(此时最后以管理员运行CMD):net stop RabbitMQ && net start RabbitMQ
- 7.mysql数据库导入(分别导入ace-admin/db/init.sql、ace-auth-server/db/init.sql 这两个脚本)
- 8.配置hosts文件:修改项目里所有的defaultZone参数
- 9.修改数据库配置文件:修改ace-admin/src/main/resources/application.yml、ace-gate/src/main/resources/application.yml这两个配置文件中连接数据库的一些信息
- 10. 按顺序运行main类:CenterBootstrap(ace-center)、ConfigServerBootstrap(ace-config)、AuthBootstrap(ace-auth-server)、AdminBootstrap(ace-admin)、GateBootstrap(ace-gate)
- 11.下载前端vue源码
- 12.启动前端:先cnpm install,之后cnpm run dev
二.过程遇到的问题:
问题1:
在启动CenterBootstrap(ace-center)时报错如下:
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext
原因分析:
我使用的是jdk10,而从jdk9开始java EE就不再提供JAXB API,因此在jdk9.0及以后的版本中不再包含这个 Jar 包。
而在 java 6/7 / 8 时关于这个API 都是捆绑在一起的
解决方案:可以从maven的中央库中下载
Maven项目可添加如下依赖:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
然后maven会自动导入相应的插件,导入成功后,再重新启动CenterBootstrap(ace-center),重启成功
问题2:
在启动ConfigServerBootstrap(ace-config)时报错如下:
Error:java: java.lang.ExceptionInInitializerError
原因分析: AG-Admin项目原本使用的lombok版本是0.16,而我的idea上下载的版本是0.19,致使maven在识别lombok版本时出现jar包的依赖冲突。
解决方法:
将主项目目录下的pom.xml文件中的
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.14</version>
<scope>provided</scope>
</dependency>
改成:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
<scope>provided</scope>
</dependency>
然后让maven自动更新jar包,更新完之后ConfigServerBootstrap(ace-config)可以正常启动。
五个都启动成功之后,则后台就全部起动成功
问题3:
前端vue项目的默认下载地址已不再使用,下载地址改为https://gitee.com/liaoj/AG-Admin-v2.0或https://gitee.com/skyscraper/AG-Admin-v2.0
问题4:
前端起动前要提前启动nginx,
nginx的配置如下:
location /jwt/ {
proxy_pass http://127.0.0.1:8765/jwt/;
}
location /api/ {
proxy_pass http://127.0.0.1:8765/api/;
}
问题5:
前端起动完成后,在登陆界面点击登陆会出现错误提示:Request failed with status code 500
在后台GateBootstrap进程中报的错误是:
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:53) ~[jedis-2.9.0.jar:na]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226) ~[jedis-2.9.0.jar:na]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:16) ~[jedis-2.9.0.jar:na]
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:194) ~[spring-data-redis-1.8.4.RELEASE.jar:na]
… 87 common frames omitted
原因分析:未启动Redis
解决方案:从redis官网上下载redis并启动,redis起动端口为默认端口
再次点击登陆:成功登陆
至此:开源项目AG-Admin的前端和后台都已成功运行
运行成功之后的前端加后台打包代码下载地址:https://download.csdn.net/download/qingshuiwater/10634269