热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

实际项目中踩坑记录

知了堂姐
2024-07-09 11:12:24
0

一、Nacos踩坑

1、Nacos下载版本

  • 根据自己需要的版本:nacos-server-2.2.0环境选择下载安装

2、解压启动

解压启动这个地方发现一个问题,就是我解压完成在启动的时候闪退一道黑影闪过不知道发生了什么,查询资料发现Nacos启动必须要求JDK1.8以上,64位的系统必须要有JAVA_HOME这个环境变量,查看了一下环境变量,发现当初配的时候没有用JAVA_HOME这个环境变量,于是重新配置了一下: 1.JAVA_HOME为JDK的安装目录

3、Nacos配置启动

解压完成的Nacos目录结构

3.1、application.properties配置文件

  • 添加数据库配置参数
spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?
characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=rootdb.password=root
  • conf文件夹有一个nacos-mysql.sql,在本地创建数据库执行这个SQL文件

3.2、修改startup.cmd参数

这是因为这里Nacos没有配置集群模式,而是使用的单机模式,所以编辑startup.cmd, 将MODE修改为standalone

3.3、成功启动

二、阿里云服务器上搭建zookeeper

  1. 到官网下载zookeeper的压缩包
  2. 用xftp从windows本地传输到/home/xxx(任何你想放的地方)
  3. 找到linux服务器上传输完成的zookeeper压缩包
  4. 执行tar -zxvf zookeeperPath(这里是你的zookeeper压缩包文件路径)
  5. 将解压后的zookeeper文件夹转移到/usr/local路径中
  6. 进入zookeeper文件的conf文件夹中
  7. 执行vim zoo.conf命令,对dataDir进行修改 (任何你指定的位置)
  8. 进入zookeeper文件的bin目录中,执行./zkServer.sh —config configurationPath(配置文件路径) start命令
  9. 执行./zkCli.sh 命令进入客户端

本来按照上述的步骤就能够正常地运行zookeeper 但是我运行时却出现错误

错误信息:

Error contacting service. It is probably not running.

排查步骤:

  1. 进入zookeeper文件的logs目录,查看错误信息
  2. ERROR [main:ZooKeeperServerMain@80] - Unable to start AdminServer, exiting abnormally

Caused by: java.net.BindException: Address already in use

  1. 分析错误原因在于没有配置管理服务端口
  2. 进入zookeeper文件的conf目录,使用vim zoo.conf,添加admin.serverPort=9091到配置文件中
  3. 测试进入zookeeper客户端==>正常启动

三、Spring boot 集成 mybatis 搭建项目,关于LocalDateTime 和 timestamp 转换出错解决

我用的是Spring boot 版本:2.3.0.RELEASE、mysql 驱动版本号 5.1.5,

在pom 文件中,我指定了 mysql 驱动版本号 5.1.5

 
               mysql
               mysql-connector-java
               5.1.5
               runtime
 
  1. 数据库表 有一字段 create_time 类型为 timestamp。
  2. 实体类属性 createTime 类型为 LocalDateTime。

1、问题描述

当我使用 Mybatis 执行关于 create_time 字段 的sql(比如select create_time from XXX_table )时,无法将timestamp 转化 为 LocalDateTime,程序出现异常,stack trace 如下:

org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879) ~[spring-webmvc-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) ~[spring-webmvc-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.35.jar:9.0.35]    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.6.RELEASE.jar:5.2.6.RELEASE]    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) [tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) [tomcat-embed-core-9.0.35.jar:9.0.35]    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.35.jar:9.0.35]    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_112]    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_112]    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.35.jar:9.0.35]    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]

2、解决方法

  1. 在 pom 文件中不要指定 mysql 版本号,此时 spring boot 会使用自动配置的版本号(在我的项目中,spring boot 自动配置的版本号为 8.0.20),spring boot 自动配置的MySQL版本号信息在 spring-boot-dependencies-2.3.0.RELEASE.pom 文件中查看:
  2. pom 文件依赖如下:


    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.0.RELEASE
         
    
    com.wwc
    vueelementadmindemo
    0.0.1-SNAPSHOT
    vueelementadmindemo
    Demo project for Spring Boot
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-json
                
            
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.1.2
        
        
            mysql
            mysql-connector-java
            runtime
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

2.指定mysql 驱动 6.X以上的版本号

pom 文件如下:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.0.RELEASE
         
    
    com.wwc
    vueelementadmindemo
    0.0.1-SNAPSHOT
    vueelementadmindemo
    Demo project for Spring Boot
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-json
                
            
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.1.2
        
        
            org.apache.commons
            commons-lang3
            3.9
        
        
            mysql
            mysql-connector-java
            6.0.2
            runtime
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

1 和 2 mybatis 导入的依赖如下:

3.在pom 问价中指定 mysql 驱动版本号 5.X.X,指定 mybatis-spring-boot-starter 版本号为 2.0.0 :



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.0.RELEASE
         
    
    com.wwc
    vueelementadmindemo
    0.0.1-SNAPSHOT
    vueelementadmindemo
    Demo project for Spring Boot
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-json
                
            
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.0.0
        
        
            mysql
            mysql-connector-java
            5.1.5
            runtime
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

此时,mybatis 导入的依赖如下:

造成异常原因,是 mybatis 版本号 和 mysql 驱动版本号 不匹配

小结:

在技术上踩坑其实并不可怕,可怕的是没遇到过坑,坑踩得越多技术才会变得越好,而且代码只有多敲,才能让学习到的知识更加牢固,行动才是最快的学习方法。

大家都在看

Web安全工程师职业前景怎么样?待遇优厚!

2024-07-09 浏览次数:0

网络安全岗位解析之安全服务工程师,安全服务工程师...

2024-07-09 浏览次数:0

web安全怎么学习:从零到一,打造网络安全达人

2024-07-09 浏览次数:0

前端的三大框架哪个最值得学?前端三大框架对比

2024-07-09 浏览次数:0

为什么 Linux 系统会受到企业的青睐?(面试...

2024-07-09 浏览次数:0

jquery选择器有哪些类型?jquery选择器...

2024-07-09 浏览次数:0
最新资讯
Java 学习前景如何?探索未...   学Java还有前景吗?这个得看看市场需求:  根据2020年TIOBE开发语言排行榜宣布的流行开...
当兵两年,回来继续学Java   当兵两年,回来继续学Java  人这一生就像一部半开放式结局的电影,有大致的时间线,却没有准备好...
java培训课程主要有哪些内容...   我们在选择最佳Java培训机构的时候,Java培训课程一定是我们选择的重要依据。那么Java培训...
在B站学Java,真挺好   众所周知,b站是用来搞学习的。  对于我们学习编程的同学来说,b站有着非常多的学习资源,今天给大...
3月14日,汇智知了堂Java...   生活有不期而遇的温暖  学习有不言而喻的乐趣  开班典礼  3月14日上午9点,知了堂开发、网络...
java学习路线——java学...   java在大学期间一直都是计算机专业的必修课程,而社会中人如果想要学习java,那么就只能通过自...
java培训网课多少钱?Jav...   Java培训是很多转行者的必经之路,因为转行是很难的,如果没有足够的技能和经验,转行更多的是空话...
java入门应该学什么?Jav...   Java入门应该怎么学?这大概就是很多转行者得首要疑问了,没有接触过,完全不了解,所以掌握不到学...
com.wwc vueelementadmindemo 0.0.1-SNAPSHOT vueelementadmindemo Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-json org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.2 mysql mysql-connector-java runtime org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.boot spring-boot-maven-plugin

2.指定mysql 驱动 6.X以上的版本号

pom 文件如下:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.0.RELEASE
         
    
    com.wwc
    vueelementadmindemo
    0.0.1-SNAPSHOT
    vueelementadmindemo
    Demo project for Spring Boot
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-json
                
            
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.1.2
        
        
            org.apache.commons
            commons-lang3
            3.9
        
        
            mysql
            mysql-connector-java
            6.0.2
            runtime
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

1 和 2 mybatis 导入的依赖如下:

3.在pom 问价中指定 mysql 驱动版本号 5.X.X,指定 mybatis-spring-boot-starter 版本号为 2.0.0 :



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.0.RELEASE
         
    
    com.wwc
    vueelementadmindemo
    0.0.1-SNAPSHOT
    vueelementadmindemo
    Demo project for Spring Boot
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-json
                
            
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.0.0
        
        
            mysql
            mysql-connector-java
            5.1.5
            runtime
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

此时,mybatis 导入的依赖如下:

造成异常原因,是 mybatis 版本号 和 mysql 驱动版本号 不匹配

小结:

在技术上踩坑其实并不可怕,可怕的是没遇到过坑,坑踩得越多技术才会变得越好,而且代码只有多敲,才能让学习到的知识更加牢固,行动才是最快的学习方法。

Java

上一篇:909万应届生创新高,如何打破毕业=失业的困境?

下一篇:Mybatis 添加日志功能

相关内容

Java 学习前景如何?探...
  学Java还有前景吗?这个得看看市场需求:  根据2020年T...
2024-10-29 14:37:41
当兵两年,回来继续学Jav...
  当兵两年,回来继续学Java  人这一生就像一部半开放式结局的...
2024-10-29 14:27:41
java培训课程主要有哪些...
  我们在选择最佳Java培训机构的时候,Java培训课程一定是我...
2024-10-29 14:27:01
在B站学Java,真挺好
  众所周知,b站是用来搞学习的。  对于我们学习编程的同学来说,...
2024-10-29 14:06:32
3月14日,汇智知了堂Ja...
  生活有不期而遇的温暖  学习有不言而喻的乐趣  开班典礼  3...
2024-10-29 11:55:45
java学习路线——jav...
  java在大学期间一直都是计算机专业的必修课程,而社会中人如果...
2024-10-29 11:54:37

热门资讯

就业课程介绍(Java+前端+... Java+大数据,前端全栈,信息安全
关于我们 请输入文章描述
0基础转行信安,他如何做到月薪... 转行并非简单的换份工作,而是我们在职场进行自我认同、重塑身份的一个过程。今天知了小姐姐为大家介绍一位...
【前端每日一题】什么是BFC?... 秋招马上就要开始了,小伙伴们最近在准备面试的东西没呢,知了姐今天将蛋糕哥整理的前端面试题共享出来,同...
cisp考试费用多少?cisp...   随着网络技术的快速发展,网络安全问题变得越来越重要。那么,CISP考试费用多少?CISP报名条件...
pythone 文件和数据格式... 关于 Python 对文件的处理,以下选项中描述错误的是
img标签的onerror事件... 1.img 标签除了 onerror 属性外,还有其他获取管理员路径的办法吗? src 指定一个远程...
网络安全运维岗面试题及答案详解... 在当今数字化时代,网络安全运维工程师的角色变得愈发重要。为了保障网络安全,各个企业都需要拥有一支经验...
知了堂官网V3第一版内测邀请 经过几个月的加班加点,我们终于迎来了知了堂官网3.1.0版本 现正招募内测中
川农第一次线下拓展精彩瞬间 5月15日,知了堂的哥哥姐姐们携手企业拓展教练浩浩荡荡奔赴川农。
-->