1、问题1-Uncaught (in promise) TypeError: Cannot read property ‘xx’ of null

1、问题描述
  今天在测试将数据保存到ES中时,在“发布商品”时,下面图像内容无法显示:

  前端也能从后台拿到相应的数据,前端会有下面的报错信息:

ncaught (in promise) TypeError: Cannot read property 'xx' of null

  定位到,是D:\03Enviroment\28VSCode\code\renren-fast-vue\src\views\modules\product\spuadd.vue文件中的代码:

showBaseAttrs() {if (!this.dataResp.steped[0]) {this.$http({url: this.$http.adornUrl(`/product/attrgroup/${this.spu.catalogId}/withattr`),method: "get",params: this.$http.adornParams({})}).then(({ data }) => {//先对表单的baseAttrs进行初始化data.data.forEach(item => {console.log("item---",item)console.log("item.attrs---",item.attrs)console.log("item.attrs.attrId---",item.attrs.attrId)let attrArray = [];item.attrs.forEach(attr => {console.log("进入attr.attrId---",attr.attrId)attrArray.push({attrId: attr.attrId,attrValues: "",showDesc: attr.showDesc});});this.dataResp.baseAttrs.push(attrArray);});this.dataResp.steped[0] = 0;this.dataResp.attrGroups = data.data;});}},

2、解决
  在属性分组中,主体和基本信息已经将规格参数信息关联完:

  假如我们新增一个属性分组屏幕,其没有和任何规格参数关联,当在“发布商品”的时候,进入到新增规格参数一栏,前端给后端发送请求,后端将携带数据返回,但是后端中的屏幕分组attrs没有相关联的规格信息,在上面的前端代码的遍历中就会报错。返回数据格式如下:

{"msg":"success","code":0,"data":[{"attrGroupId":1,"attrGroupName":"主体","sort":null,"descript":null,"icon":null,"catelogId":225,"attrs":[{"attrId":13,"attrName":"入网型号","searchType":1,"icon":"xx","valueSelect":"A01;B01","attrType":1,"enable":1,"catelogId":225,"showDesc":0,"valueType":1},{"attrId":14,"attrName":"上市年份","searchType":1,"icon":"xx","valueSelect":"2018;2019","attrType":1,"enable":1,"catelogId":225,"showDesc":0,"valueType":0}]},{"attrGroupId":2,"attrGroupName":"基本信息","sort":null,"descript":null,"icon":null,"catelogId":225,"attrs":[{"attrId":17,"attrName":"机身颜色","searchType":1,"icon":"xx","valueSelect":"朱红色;小米色","attrType":1,"enable":1,"catelogId":225,"showDesc":0,"valueType":1},{"attrId":18,"attrName":"机身长度","searchType":1,"icon":"xx","valueSelect":"10;20","attrType":1,"enable":1,"catelogId":225,"showDesc":0,"valueType":0}]},{"attrGroupId":3,"attrGroupName":"屏幕","sort":0,"descript":"屏幕","icon":"xxx","catelogId":225,"attrs":null}]
}

  将没有关联信息的属性分组屏幕删除即可。

2、问题2- Invalid bound statement (not found)

1、问题描述
  在学习谷粒商城“商品详情”时,遇到了mybatis的dao接口绑定失效问题:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xiaolun.gulimall.product.dao.AttrGroupDao.getAttrGroupWithAttrsBySpuId

  经过检查,对应的接口都能跳转,发现时target的问题,如下:

  当我对gulimall-product项目进行clear后,生成的dao.xml文件就剩下面的四个:

  这说明不是代码的问题,是idea的问题。
2、解决方法
  在pom文件中引入下面的配置:

<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources>
</build>

3、问题3- Data truncation: Data too long for column ‘order_sn’ at row 1

1、问题描述
  在进行提交订单操作时,如下图:

  弹出下面的错误:

Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'order_sn' at row 1

2、解决
  修改数据库中对应订单的字段长度:

4、问题4

1、问题描述
  在测试代码中的支付逻辑时,为了保持简洁性,我将数据库中关于订单和库存(oms_order、wms_ware_order_task、wms_ware_order_task_detail)的数据全部删除进行测试,然而,在gulimall-ware服务的控制台中一直打印

收到解锁库存的消息
一些sql语句

  将yml配置文件中调试配置关闭:

# 用来查看逻辑删除的sql语句
logging:level:com.xiaolun.gulimall.ware: debug

  sql语句没有了,但是还是会收到“收到解锁库存的消息”这句话,通过查看RabbitMq,发现里面一直有一个未消费的消息:

2、解决
  将gulimall-ware服务停掉,将消息删除后,重启该服务就没有出现这样的问题了。
  应该时将数据表删除之后,上面解锁逻辑查询数据库失败,无法解锁,抛出异常,然后队列重新入队,再次消费引起的。

5、问题5-前后端时间不同步问题

1、SpringBoot 查询时间数据 数据库和返回数据相差8个小时,或者+0800/T等
  由于本项目中使用到了fastjson,所以对其进行下面的配置:

spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

2、使用Vue向后端发送数据无法接收
(1)介绍

  按照上面添加时区配置后,进行下面的更新秒杀时间操作:

  发现前端传的的时间格式和后端的时间格式不一样,导致后台无法接收,产生警告信息。前端传递的是UTC格式的,类似于下面这种:

2020-03-09T16:00:00.000Z

  这样的格式,后端无法处理,后端代码为:

    /*** 修改*/@RequestMapping("/update")public R update(@RequestBody SeckillSessionEntity seckillSession){seckillSessionService.updateById(seckillSession);return R.ok();}

(2)解决
  参考博客:

https://www.freesion.com/article/5355374455/
https://www.jianshu.com/p/e28783ab43f8

  全局安装时间格式化器moment

npm install moment -s

  在入口文件main.js中全局配置时间格式化器moment

// 前端代码传递给后端时间问题修改
import moment from 'moment'
//添加到Vue实例中以便全局使用
Vue.prototype.$moment = moment;

  使用,不用在vue组件中引入moment,使用this.$moment使用

this.xx=this.$moment(this.xx).format('YYYY-MM-DD HH:mm:ss');

  谷粒商城优惠秒杀服务代码(相对路径:src\views\modules\coupon\seckillsession-add-or-update.vue):

    // 表单提交dataFormSubmit() {this.$refs["dataForm"].validate(valid => {if (valid) {this.$http({url: this.$http.adornUrl(`/coupon/seckillsession/${!this.dataForm.id ? "save" : "update"}`),method: "post",data: this.$http.adornData({id: this.dataForm.id || undefined,name: this.dataForm.name,// startTime: this.dataForm.startTime,// endTime: this.dataForm.endTime,startTime: this.$moment(this.dataForm.startTime).format('YYYY-MM-DD HH:mm:ss'),endTime: this.$moment(this.dataForm.endTime).format('YYYY-MM-DD HH:mm:ss'),status: this.dataForm.status,// createTime: new Date()createTime: this.$moment(new Date()).format('YYYY-MM-DD HH:mm:ss')})}).then(({ data }) => {if (data && data.code === 0) {this.$message({message: "操作成功",type: "success",duration: 1500,onClose: () => {this.visible = false;this.$emit("refreshDataList");}});} else {this.$message.error(data.msg);}});}});}

此时,发送请求参数如下,时间按照对应格式发送给后端:

6、问题6-kubernetes安装遇到的问题

1、master节点初始化报错

1、问题描述
  在node1、node2、node3三个虚拟机上安装安装kubeadm,kubelet和kubectl后,执行master(node1)节点初始化,在VirtualBox创建的三台虚拟机上使用下面指令,能够正常执行:

# apiserver-advertise-address对应的是master节点中的eth0地址
kubeadm init \
--apiserver-advertise-address=10.0.2.15 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.17.3 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.244.0.0/16

  在阿里云ECS服务器上,使用相同的指令执行:

# 此时,apiserver-advertise-address对应的是ECS上的公网ip
kubeadm init \
--apiserver-advertise-address=47.118.33.234 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.17.3 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.244.0.0/16

  通过日志查看,发现master节点的初始化构建过程会卡顿在这里,并报错:

2、解决
  将初始化命令中的下面语句进行删除:

--apiserver-advertise-address=47.118.33.234 \

  发现可以正常执行,并生成了下面的在其他节点添加进而构成kubernetes网络的信息:

kubeadm join 172.26.147.202:6443 --token lphkhi.ptkgscmikv0qbuiu \--discovery-token-ca-cert-hash sha256:c8f278bcb1e55ca9ac8466e326189ea3f42241097409090b124a80187ce689e4

  172.26.147.202:6443该网址对应的阿里云服务器上公网ip47.118.33.234地址,也是eth0地址。
  要访问阿里云服务器,记得要开启相关安全组端口。

2、ECS相关配置

1、操作
(1)开放的端口

(2)nodes名字

(3)启动的服务和应用

3、最小化安装kubesphere报错

1、描述
  在安装kubesphere2.1(kubernetesv1.7.3)时,在使用 kubesphere-minimal.yamlkubesphere-complete-setup.yaml安装时,发现文件无法找到,我就使用了kubesphere3.0.0的安装文件:

kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/kubesphere-installer.yamlkubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/cluster-configuration.yaml

  虽然说kubesphere可以运行,但是在使用helm指令安装sonar-qube可拔插插件时,Helm需要选用3版本,命令如下:

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bashhelm upgrade --install sonarqube sonarqube --repo https://charts.kubesphere.io/main -n kubesphere-devops-system  --create-namespace --set service.type=NodePort

  参考网址:

https://kubesphere.com.cn/docs/devops-user-guide/how-to-integrate/sonarqube/#%e4%b8%ba%e6%96%b0%e5%b7%a5%e7%a8%8b%e5%88%9b%e5%bb%ba-sonarqube-token

  但是,安装kubesphere2.1的Helm是版本v2.16.3,导致上面命令不可用而报错,加入将Helm版本升级到版本3,但是又和kubesphere2.1版本不兼容,因此,推荐使用kubesphere2.1安装,需要找到最小化安装文件 kubesphere-minimal.yamlkubesphere-complete-setup.yaml,我将其上传到csdn的资源中心了,供大家下载,路径地址为:

https://download.csdn.net/download/weixin_43334389/18110072

内容如下:

---
apiVersion: v1
kind: Namespace
metadata:name: kubesphere-system---
apiVersion: v1
data:ks-config.yaml: |---persistence:storageClass: ""etcd:monitoring: FalseendpointIps: 192.168.0.7,192.168.0.8,192.168.0.9port: 2379tlsEnable: Truecommon:mysqlVolumeSize: 20GiminioVolumeSize: 20GietcdVolumeSize: 20GiopenldapVolumeSize: 2GiredisVolumSize: 2Gimetrics_server:enabled: Falseconsole:enableMultiLogin: False  # enable/disable multi loginport: 30880monitoring:prometheusReplicas: 1prometheusMemoryRequest: 400MiprometheusVolumeSize: 20Gigrafana:enabled: Falselogging:enabled: FalseelasticsearchMasterReplicas: 1elasticsearchDataReplicas: 1logsidecarReplicas: 2elasticsearchMasterVolumeSize: 4GielasticsearchDataVolumeSize: 20GilogMaxAge: 7elkPrefix: logstashcontainersLogMountedPath: ""kibana:enabled: Falseopenpitrix:enabled: Falsedevops:enabled: FalsejenkinsMemoryLim: 2GijenkinsMemoryReq: 1500MijenkinsVolumeSize: 8GijenkinsJavaOpts_Xms: 512mjenkinsJavaOpts_Xmx: 512mjenkinsJavaOpts_MaxRAM: 2gsonarqube:enabled: FalsepostgresqlVolumeSize: 8Giservicemesh:enabled: Falsenotification:enabled: Falsealerting:enabled: Falsekind: ConfigMap
metadata:name: ks-installernamespace: kubesphere-system---
apiVersion: v1
kind: ServiceAccount
metadata:name: ks-installernamespace: kubesphere-system---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:creationTimestamp: nullname: ks-installer
rules:
- apiGroups:- ""resources:- '*'verbs:- '*'
- apiGroups:- appsresources:- '*'verbs:- '*'
- apiGroups:- extensionsresources:- '*'verbs:- '*'
- apiGroups:- batchresources:- '*'verbs:- '*'
- apiGroups:- rbac.authorization.k8s.ioresources:- '*'verbs:- '*'
- apiGroups:- apiregistration.k8s.ioresources:- '*'verbs:- '*'
- apiGroups:- apiextensions.k8s.ioresources:- '*'verbs:- '*'
- apiGroups:- tenant.kubesphere.ioresources:- '*'verbs:- '*'
- apiGroups:- certificates.k8s.ioresources:- '*'verbs:- '*'
- apiGroups:- devops.kubesphere.ioresources:- '*'verbs:- '*'
- apiGroups:- monitoring.coreos.comresources:- '*'verbs:- '*'
- apiGroups:- logging.kubesphere.ioresources:- '*'verbs:- '*'
- apiGroups:- jaegertracing.ioresources:- '*'verbs:- '*'
- apiGroups:- storage.k8s.ioresources:- '*'verbs:- '*'
- apiGroups:- admissionregistration.k8s.ioresources:- '*'verbs:- '*'---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: ks-installer
subjects:
- kind: ServiceAccountname: ks-installernamespace: kubesphere-system
roleRef:kind: ClusterRolename: ks-installerapiGroup: rbac.authorization.k8s.io---
apiVersion: apps/v1
kind: Deployment
metadata:name: ks-installernamespace: kubesphere-systemlabels:app: ks-install
spec:replicas: 1selector:matchLabels:app: ks-installtemplate:metadata:labels:app: ks-installspec:serviceAccountName: ks-installercontainers:- name: installerimage: kubesphere/ks-installer:v2.1.1imagePullPolicy: "Always"

4、sonarqube配置

1、操作
  kubesphere2.1版本有一个内置的sonarqube,按照文档,在创建凭证的时候十分方便,参考网址如下:

https://v2-1.docs.kubesphere.io/docs/zh-CN/devops/sonarqube/

  通过下面的指令,找到运行的sonarqube服务:

kubectl get svc --all-namespaces

  可以看到该服务运行的端口号,阿里云服务器中开启对这个端口的访问,参考上面的网址使用admin/admin进入sonarqube进行配置就可以了,配置如下:

  将图中的凭证配置成流水线的秘密文本就可以了:

15e8e389ba4921124076e6bc44d454ec14f6b142

7、问题七-流水线问题

1、推送镜像到阿里云速度慢

1、问题描述
  使用流水线打成jar包和使用Dockerfile文件将jar包打成镜像推送到阿里云速度很慢,当服务器运行负荷比较大的时候,推送速度只有40kB/s,然后镜像有700MB,这需要猴年马月。
  我还特意测了一下阿里云的镜像加速器,发现不是它的原因。
2、问题解决
  主要是我的阿里云服务器使用的是固定带宽1Mb/S,带宽太小了,需要增大带宽10Mb/S,如下:

  此时,推送速度很快,大约5-7分钟的样子。

2、创建镜像仓库密钥中文不能识别报错

1、问题描述及解决
  将镜像推送到阿里云之后,配置一个镜像仓库密钥来拉取镜像,但是会遇到下面的问题:

  在阿里云无法进行修改,对其进行 urlencode编码,可通过一些第三方网站进行转换,网址:

http://tool.chinaz.com/tools/urlencode.aspx

  还是无法进行修改,只能重新申请一个账号。
注意:仓库地址采用HTTPS协议进行验证,否则无法识别,导致镜像仓库密钥无法创建。

3、镜像部署到k8s异常

1、问题-unprocess entity

(1)描述
  当流水线运行拉取代码、代码质量检查、构建和推送镜像,到运行到部署到k8s时,会有下面的报错:unprocess entity

30861: provided port is already allocated

(2)解决
  通过检查deploy部署文件gulimall-gateway-deploy-svc.yaml,如下:

apiVersion: v1
kind: Service
metadata:labels:app: gulimall-gatewaycomponent: gulimall-gatewayname: gulimall-gatewaynamespace: gulimall
spec:ports:- name: httpport: 8080protocol: TCPtargetPort: 8080nodePort: 30861selector:app: gulimall-gatewaycomponent: gulimall-gatewaytier: backendsessionAffinity: Nonetype: NodePort

  发现该service使用的端口为30861,在kubesphere2.1的快速入门-基于Spring Boot构建流水线中,我发现其运行的端口也是30861:

  将该容器停掉即可。
注意Service的nodeport端口范围:30000-32767。

2、容器OOMkill异常

(1)描述
  运行流水线部署到k8s中的项目,容器启动会报OOM错误,如下:

(2)解决
  在部署的时候,内存最大限制为600mi,cpu限制0.3核,gulimall-gateway-deploy.yaml文件内容如下:

          resources:limits:cpu: 300mmemory: 600Mi

  然而,服务启动的时候,jvm一次性给其分配内存为几个G,超出容器限制,会被kubesphere杀掉,进而导致容器被停掉。
  在构建docker镜像的时候,添加占用内存配置:"-Xms128m","-Xmx300m"Dockerfile内容如下:

ENTRYPOINT ["java","-jar","-Xms128m","-Xmx300m","/app.jar","--spring.profiles.active=prod"]

  经过这样的配置gulimall-gateway服务不会出现这样的OOM问题,但是会发现容器会有容器没有准备就绪的状态,打开日志会有这样的内容:

  但是会发现gulimall-gateway服务已经成功注册到nacos中了,

3、环境变量无法识别

(1)问题描述
  在运行流水线时,输入项目名,一遍在审核的时候可以动态取值,然后在运行到将镜像推送到k8s集群中时,发现无法动态取值。
(2)解决
  将单引号’‘变成双引号“”,以便环境变量$PROJECT_NAME可以生效:

        stage('5-deploy to dev-部署到k8s') {when{branch 'master'}steps {sh 'echo $PROJECT_NAME'input(id: 'deploy-to-dev-$PROJECT_NAME', message: "deploy to dev-是否将 $PROJECT_NAME 部署到集群中?")kubernetesDeploy(configs: "$PROJECT_NAME/deploy/**", enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")}}
4、Readiness probe failed

1、问题描述
  在将gulimall-gateway项目使用流水线上传到k8s时,流水线是执行成功的,如下图所示:

  但是这并不意味着容器在k8s中会部署成功。容器在部署过程中会遇到这个问题:

Readiness probe failed: Get http://10.244.0.88:8080/: dial tcp 10.244.0.88:8

  使用下面指令查看该pod的运行状况,和报错信息一样,如下图所示:

 kubectl describe pod gulimall-gateway-7644cdcd48-4xg8v(pod名) -n gulimall(namespaces)

2、解决
  该问题是部署文件的问题,不是jenkinsfile文件的问题,通过查看部署文件gulimall-gateway-deploy.yaml,看到和指针相关的内容如下:

    spec:containers:- env:- name: CACHE_IGNOREvalue: js|html- name: CACHE_PUBLIC_EXPIRATIONvalue: 3dimage: $REGISTRY/$ALIYUN_NAMESPACE/$PROJECT_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBERreadinessProbe:httpGet:path: /port: 8080timeoutSeconds: 60failureThreshold: 30periodSeconds: 5

  通过查阅相关博客:

https://cloud.tencent.com/developer/article/1386151
https://www.cnblogs.com/xuewenlong/p/13322787.html

  应该是服务在启动期间就对其进行检查,由于该应用没有处于就绪状态,会被标记为unhealty状态,因此,将其注释,即不进行readinessProbe检查或者使用k8s集群自带检查即可:

spec:containers:- env:- name: CACHE_IGNOREvalue: js|html- name: CACHE_PUBLIC_EXPIRATIONvalue: 3dimage: $REGISTRY/$ALIYUN_NAMESPACE/$PROJECT_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER
#          readinessProbe:
#            httpGet:
#              path: /
#              port: 8080
#            timeoutSeconds: 60
#            failureThreshold: 30
#            periodSeconds: 5

  此时,查看pod运行状况:

5、service无法部署

1、问题描述及解决
  在运行流水线部署的时候,在部署到k8s时,会遇到一些service无法部署的问题,主要原因是,在service部署文件中,包含有项目的部署信息,比如:

apiVersion: v1
kind: Service
metadata:labels:app: kubespherecomponent: ks-sample-devname: ks-sample-devnamespace: kubesphere-sample-dev

  service会部署到 kubesphere-sample-dev这个项目 (Namespace) 环境中,该项目需要预先在控制台依次创建,对应下面内容:

6、sonar代码质量分析报错

1、问题描述
  在运行实例代码时,sonar质量分析时会报出下面的错误:

2、解决
  这个报错主要是springboot的版本太低导致的,我们到springboot官方文档中,找一个稳定的版本即可,比如2.1.13.RELEASE的:

7、访问vue前端报跨域请求错误

1、问题描述
  在本地IDEA调试好代码后,放到阿里云进行访问,报出下面的跨域请求错误:

  但是login请求是正确的,返回状态码200。
2、解决
  返回两个http请求,这说明在后端添加解决跨域请求配置后,在前端也有一个配置,但是我已经将前端的核心代码配置进行注释了,但是我并没有完全注释,将其完全注释就可以了:

8、配置nginx指定访问路径失败

1、问题描述
  参考博客:

https://blog.csdn.net/medivhq/article/details/72628782
https://blog.csdn.net/weixin_39592623/article/details/91039525

  使用下面的命令前端vue文件的镜像进行打包:

FROM nginx
MAINTAINER leifengyang
# 将静态资源放到nginx中,可以直接访问
ADD dist.tar.gz /usr/share/nginx/html
EXPOSE 80
ENTRYPOINT nginx -g "daemon off;"

  k8s拉取该镜像进行部署,我按照ip地址的方式进行访问该前端项目,未能弹出前端界面按照下面的方式可以进行访问:

ip/dist/index.html

  修改配置文件conf.d/default.conf:

server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html/dist;index  index.html;}

  按照ip地址进行访问,发现还是不能生效,在docker中,我会重启容器,但是在k8s中,修改配置文件后,没有重启该容器。
2、解决
  修改打包镜像的Dockerfile文件,在打包的时候就进行修改配置文件:

FROM nginx
MAINTAINER leifengyang
ADD dist.tar.gz /usr/share/nginx/html
COPY default.conf /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
ENTRYPOINT nginx -g "daemon off;"

  那么镜像就会使用我们的配置进行启动容器。使用ip进行测试,可以正常访问前端。

9、启动gulimall-product服务报出Failed to configure a DataSource url attribute is not specified

1、问题描述
  参考博客:

https://blog.csdn.net/qq_42397121/article/details/106845656
https://blog.csdn.net/u013887008/article/details/105447036

  在书写product服务时,运行该服务会出现该target包中没有mapper相关xml文件的报错,k8s运行到阿里云的时候,发现连yml、application和template/xx.html等相关文件都没有了。

2、解决
  无法扫描配置,启动出错,在pom文件中添加下面的配置下面的配置:

    <build><resources><resource><directory>src/main/java</directory><includes><include>**/*.yml</include><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.yml</include><include>**/*.properties</include><include>**/*.xml</include><include>**/*.html</include></includes><filtering>false</filtering></resource></resources><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

  如果没有maven-plugin插件,会报出下面的错误:

boot-package no main manifest attribute, in /app.jar

8、Docker中配置Redis连接不上

1、问题描述
  在Docker上安装redis(5.0.12),redis是按照指定文件conf启动的,在本机上也可以访问,在配置文件中将bind 127.0.0.1中改成了bind 0.0.0.0,但是,在IDEA中进行连接redis时,会有下面的报错:

redis.clients.jedis.exceptions.JedisConnectionException: Could not get xx

  使用docker ps命令查看redis的启动状况,发现redis没有正常启动。
2、解决
  需要将daemonize设置成No,此时,才可以正常启动。
  参考博客:

https://blog.csdn.net/lcyaiym/article/details/76863802

9、Vscode中将前端代码上传到gitee

1、步骤
  参考博客:

https://blog.csdn.net/qq_36375203/article/details/98476758

(1)在码云上创建空白仓库
(2)点击源代码管理

  初始化使用vscode打开的文件夹仓库
(3)点击上文的加号添加代码
(4)点击对号提交代码

(5)推动到远程仓库

  其间需要输入远程仓库的地址和名字。如果遇到什么问题,可以通过下面的日志进行查看:

谷粒商城学习时遇到的一些问题相关推荐

  1. Java常用类(谷粒商城学习记录)

    Java常用类 谷粒商城学习记录 谷粒商城学习记录 谷粒商城学习记录 干嘛老是提示我与别人的文章相似呢?真的是我自己整理的啊啊啊 老是提示与这个文章相似 https://blog.csdn.net/c ...

  2. 2022谷粒商城学习笔记(二十二)rabbitMQ学习

    前言 本系列博客基于B站谷粒商城,只作为本人学习总结使用.这里我会比较注重业务逻辑的编写和相关配置的流程.有问题可以评论或者联系我互相交流.原视频地址谷粒商城雷丰阳版.本人git仓库地址Draknes ...

  3. 2022谷粒商城学习笔记(二十三)分布式事务

    前言 本系列博客基于B站谷粒商城,只作为本人学习总结使用.这里我会比较注重业务逻辑的编写和相关配置的流程.有问题可以评论或者联系我互相交流.原视频地址谷粒商城雷丰阳版.本人git仓库地址Draknes ...

  4. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  5. 谷粒商城学习笔记(2)-- 环境搭建项目结构创建

    一.环境 虚拟机ip192.168.174.128 本地ip192.168.31.14 本地和虚拟机要互相ping通 二.Docker 虚拟化容器技术.Docker基于镜像,可以秒级启动各种容器.每一 ...

  6. 分布式电商项目 谷粒商城 学习笔记<2>

    文章目录 六.三级分类 1.按照父子类的结构获取所有分类 2.跨域问题的解决 1.使用nginx部署为同一域 2.让服务器告诉预检请求能跨域 3.过滤器优先级问题 4.删除 5.增加修改拖拽 七.品牌 ...

  7. 谷粒商城商品规格数据结构学习笔记(SPUSKU)

    谷粒商城商品规格数据结构学习笔记(SPU&SKU) SPU Standard Product Unit (标准产品单位) ,一组具有共同属性的商品集 SKU Stock Keeping Uni ...

  8. 尚硅谷2020微服务分布式电商项目《谷粒商城》学习笔记

    尚硅谷2020微服务分布式电商项目<谷粒商城> 项目简介 资料 百度云 链接:https://pan.baidu.com/s/1eGCTi6pLtKbDCwBs-zCOzQ 提取码:1pm ...

  9. 谷粒商城-个人学习(1)

    对于应届生来说,秋招的时候是否有合适的实习.项目.竞赛经验真的很重要. 希望这篇学习总结笔记对他人会有帮助吧. 对拥有相同经历的被导师卡着不能出去实习的专硕表示同情,并共勉. 加油吧. 谷粒商城-个人 ...

最新文章

  1. 纯虚函数--抽象类中的this到底指的是哪个子类实例呢
  2. 三张图搞懂JavaScript的原型对象与原型链
  3. php mvc 通过 htaccess 隐藏 index.php 或 index.php?arg=
  4. 保险条款精解(四)索赔——不可不看,因为您以前可能没听说过
  5. ubuntu linux kvm安装,ubuntu16.04 下kvm安装
  6. RocketMQ消息存储结构分析及相对于Kafka的优势
  7. 时间序列趋势分解 seasonal_decompose
  8. 22个开源的PHP框架
  9. rtl8188eu无线网卡驱动linux,关于rtl8188eu_Linux的驱动问题想请教一下
  10. matlab 正版下载,matlab软件正版
  11. 西门子atch指令详解_西门子plc指令含义大全详解
  12. 传奇世界3D手游电脑版使用教程:无需安卓模拟器,tcgames完美适配
  13. 使用Python进行Android自动化测试
  14. iOS开发之企业开发者账号打包发布 App 到服务器上的流程
  15. pada mysql
  16. 匈牙利算法——你一定可以看懂的图论算法
  17. linux下socket编程带来的尴尬
  18. 腾讯高工保姆级“Java成长手册”,层层递进,全是精华 Github上都没有
  19. 来11:1 信就是所望之事的实底,是未见之事的确据。
  20. TFS二次开发系列:七、TFS二次开发的数据统计以PBI、Bug、Sprint等为例(一)

热门文章

  1. 原来还会有这样的事!
  2. java 创建临时表 oracle_在ORACLE存储过程中创建临时表
  3. 什么是过滤器Filter
  4. 趣图:程序员看到冰岛队的球员名册后…
  5. 浅析APP代理检测对抗
  6. C1考核--任务01
  7. Nature reviews neuroscience:后扣带皮层的三分观点
  8. 专门写给UI设计师的高通关率面试经验+技巧
  9. Android_Data
  10. 内蒙古科技大学计算机专业分数线,内蒙古科技大学