搭建Spring-boot项目问题梳理(五)

前言

本地搭建开发环境时遇到的问题整理。

一农险赔付率项目

前端:参看链接:https://www.cnblogs.com/szrs/p/14978447.html

后台:

从git上克隆项目
添加环境变量-DenvironmenTypeCode=devFrez
修改redis密码,远程可以访问到,本地有防火墙。

二、监控项目

1.1前端

1.1.1步骤

本地需要安装nodejs;如果是通过公司的网络可能还需要设置代理;
idea通过git克隆项目到本地;切换分支devtest上。
将node_modules放到项目的根路径。
配置idea的vue开发环境;
npm install
npm run dev启动项目

1.1.2问题

1、无法下载依赖包;

解决:先用热点下载好。。。。。再用公司的网。(因为公司网络设置了,访问不了github,配置了代理也不好使。。变通解决)

1.2后端

1.2.1步骤

1、通过git克隆项目到本地;切换分支devtest。
2、查看pom.xmL文件;配置setting.xml文件。
3、查看application.yml文件。
  4、报错解决:添加环境变量-Djasypt.encryptor.password=asd

1.2.2问题

1、报错:

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.]
[2021-08-18 16:56:55.834] [main] [ERROR] [TID: N/A] [LAPTOP-MHHBQEIO/11.204.117.183] [] [o.s.b.diagnostics.LoggingFailureAnalysisReporter] [] [] [] [

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'spring.datasource.druid.hdr.password' to java.lang.String:

    Reason: Required Encryption configuration property missing: jasypt.encryptor.password

Action:

Update your application's configuration

原因:密码设置了加密。

配置文件截图:

 解决:添加环境变量

-Djasypt.encryptor.password=asd

node-sass与本机安装的nodejs版本不和,重新下载。
npm rebuild node-sass

 2、安装mysql数据库

现在都用最新的Mysql版本了,直接从官网下一个。

官网:去Mysql官网找个安装包,https://dev.mysql.com/downloads/windows/installer/8.0.html(可以注册一个账号,如果嫌麻烦不想注册,左下角有个跳过的按钮)

 我安装的是最新版本的

安装过程参看链接:

https://gblfy.blog.csdn.net/article/details/108033816

https://blog.csdn.net/weidong_y/article/details/79763756

安装完这个版本之后,链接maysql数据库还是报错:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:

原因如下:参看了链接:https://blog.csdn.net/qq_37924905/article/details/109111934

MySQL版本和驱动包不兼容的问题。

原因:
mysql驱动是5.0+版本的,而连接的数据库版本是8.0+版本的,所以连接不上。

解决办法:

1.改连接数据库与mysql驱动版本一致的5.0+版本

2.改mysql驱动为8.0+版本

这里要注意,如果将mysql驱动改为8.0+版本,则还要改驱动的类名,加cj字段

把驱动的类名改为:
driver="com.mysql.cj.jdbc.Driver";

我本地项目的配置是:

 明显用的版本与我安装的Mysql版本不一致。

搜索了下我安装的对应如下驱动,修改两个配置文件,问题解决。:https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.21

 3、解决了上面那的的问题后,出现如下报错:

SQLSyntaxErrorException: SELECT command denied to user ‘XXXXX‘@‘xxxx‘ for table ‘XXXX‘ 
Access denied for user 'oauth'@'localhost' to database 'reinsmonitor'
拒绝用户“oauth”@“localhost”访问数据库“reinsmonitor”

如下图:

因为没有给用户oauth配置权限导致。点击用户,新增权限问题解决。

 或者通过命令赋予新用户权限:

grant select,insert,update,delete on reinsmonitor.* to oauth@localhost identified by "oauth";
--赋予所有权限

grant all on *.* to dba@localhost;

--撤销所有权限
revoke all on *.* from dba@localhost;

3、命令行太长导致启动失败 

Error running 'ReinsMonitorBackend': Command line is too long. Shorten command line for ReinsMonitorBackend or also for Spring Boot default configuration.

原因:该选项控制如何将classpath传递给JVM:通过命令行或通过文件。大多数操作系统都有最大的命令行限制,当它超过时,IDEA将无法运行您的应用程序。 当命令行长于32768个字符时,IDEA建议您切换到动态类路径。长类路径被写入文件,然后由应用程序启动器读取并通过系统类加载器加载。 如果您对实施细节感兴趣,可以查看IDEA社区版的源代码,JdkUtil.java文件,setupJVMCommandLine方法。

解决:

参看链接:https://www.cnblogs.com/nanmu0/p/12518412.html  https://blog.csdn.net/ZXJ_1223/article/details/80611089

类似问题参看链接:https://blog.csdn.net/qq719779232/article/details/114678903

问题描述:增加了个jar包,发现项目就启动不起来了:

Error running 'EdenServerSystemApplication': Command line is too long. Shorten command line for EdenServerSystemApplication or also for Spring Boot default configuration

 

三、拓展

1、Mysql用户的连接名是啥意思:

  在MySQL建立连接的时候就会发现有连接名这样的东西,这个实际上只是方便你自己去区分哪一个Mysql,不是数据库。

四、本地搭建监控项目的设置

4.1前端

直接用idea打开即可(其他配置步骤不变)。

4.2后端

除了原来的配置,还需要将pom.xml中的私服注掉;

在application.xml中新增

mysql1:
        url: jdbc:mysql://127.0.0.1:3306/reinsmonitor?serverTimezone=GMT%2B8&characterEncoding=utf-8
        name: reinsopmysql
        username: oauth
        password: oauth
        driver-class-name: com.mysql.cj.jdbc.Driver
        #filters: stat
        maxActive: 20
        initialSize: 5
        minIdle: 1
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        testWhileIdle: true
        validationQuery: select 1
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: false

并将调整如下:

这样就可以在本地启动了。

如果错过太阳时你流了泪,那你也要错过群星了。
在所有的矛盾中,要优先解决主要矛盾,其他矛盾也就迎刃而解。
不要做个笨蛋,为失去的郁郁寡欢,聪明的人,已经找到了解决问题的办法,或正在寻找。
原文地址:https://www.cnblogs.com/szrs/p/15158028.html