Stopping service [Tomcat]和Disconnected from the target VM排查

很久没有新创建过项目了,最近在创建项目的时候发现项目启动不起来。

使用SpringBoot启动项目启动不起来,提示如下:

org.apache.catalina.core.StandardService startInternal
信息: Starting service [Tomcat]
org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet engine: [Apache Tomcat/9.0.27]
org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring embedded WebApplicationContext
org.apache.catalina.core.StandardService stopInternal
信息: Stopping service [Tomcat]
Disconnected from the target VM, address: '127.0.0.1:61060', transport: 'socket'

首先想到可能是配置文件配置有问题,检查了application.properties、*.mapper和一些xml的内容发现没有问题存在。

然后查看maven依赖也没有什么问题。

回想一下使用最基础的SSM时还没有问题,但在项目引入通用tk.mybatis.mapper的时候就启动不起来了。

我的Mapper:

BaseMapper:

package com.halon.test.dao.mapper;import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;/*** @param <T>* @author halon* @ClassName: BaseMyMapper* @Description: mybatis的基础Mapper*/
public interface BaseMyMapper<T> extends Mapper<T>, MySqlMapper<T> {}

EntityMapper:

package com.halon.test.dao.mapper;import com.halon.test.model.entity.DwUser;public interface DwUserMapper extends BaseMyMapper<DwUser> {DwUser selectByUserName(String userName);}

乍一眼看着没有什么问题,并且没有什么有用的错误提示信息(肯定是有代码报错,只是项目没有打印错误日志),再加上引发这个异常的原因有很多,就想多输出日志

  1. 在Resources目录加入log4j.properties

注:是Project Structure —> Project Setting —> Modules —> Mark as里设置的Resources 而不是你项目的名为resources的目录。

文件内容如下:

log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.rootLogger 语法:log4j.rootLogger = [ level ] , appenderName1, appenderName2, …level : 日志记录的优先级,最常见的从高到低为:ERROR、WARN、INFO、DEBUG;appenderName:日志信息输出到一个或多个地方,可以自定义变量。
例如:把日志输出在控制台:log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout把日志输出在文件中:log4j.appender.A1=org.apache.log4j.FileAppenderlog4j.appender.A1.File = /root/log/halon_test_server.log log4j.appender.A1.layout = org.apache.log4j.PatternLayout  也可使弄log4j.appender.A1.layout.ConversionPattern 调整日志输出的格式
  1. 如果是tomcat项目,查看你是否有log4j的依赖,如果没有添加一下。如果是SpringBoot/SpringCloud项目且是默认日志框架就查看第3点,如果不是就跳过3。

Tomcat使用的默认日志框架是log4j。

SpringBoot/SpringCloud使用的默认日志框架是Logback。

拓展:

[日志框架的关系以及日志无法输出问题](日志框架的关系:slf4j,slf4j-log4j12,log4j,logback - 魔杰Lee - 博客园)

  1. 增加log4j输出到slf4j的依赖
<dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>1.8.0-beta4</version>
</dependency>
  1. 再次启动项目查看日志输出
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'baseMyMapper' at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1803)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:860)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
Caused by: tk.mybatis.mapper.MapperException: tk.mybatis.mapper.MapperException: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Classat tk.mybatis.mapper.mapperhelper.MapperHelper.setSqlSource(MapperHelper.java:378)at tk.mybatis.mapper.mapperhelper.MapperHelper.processMappedStatement(MapperHelper.java:297)at tk.mybatis.mapper.mapperhelper.MapperHelper.processConfiguration(MapperHelper.java:283)at tk.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:93)at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1799)... 16 more
Caused by: tk.mybatis.mapper.MapperException: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Classat tk.mybatis.mapper.mapperhelper.MapperTemplate.setSqlSource(MapperTemplate.java:256)at tk.mybatis.mapper.mapperhelper.MapperHelper.setSqlSource(MapperHelper.java:375)... 22 more
Caused by: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Classat tk.mybatis.mapper.mapperhelper.MapperTemplate.getEntityClass(MapperTemplate.java:170)at tk.mybatis.mapper.provider.base.BaseSelectProvider.selectByPrimaryKey(BaseSelectProvider.java:94)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at tk.mybatis.mapper.mapperhelper.MapperTemplate.setSqlSource(MapperTemplate.java:246)... 23 more

发现有一个报错:java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class

看到这错误需要我们查看一下mybatis的配置文件:

@tk.mybatis.spring.annotation.MapperScan 配置的 basePackage 字段不能包含通用Mapper(BaseMapper),查看我的BaseMapper和EntityMapper放在了同一个路径下:com.halon.test.dao.mapper

解决方法:让MapperScan扫描不到BaseMapper就ok了。

ps:还可能其他原因导致的,这里只在依赖、配置文件等方面排查,具体可以根据上文增加日志输出排查问题

Stopping service [Tomcat]和Disconnected from the target VM排查相关推荐

  1. 求助org.apache.catalina.core.StandardService - Stopping service [Tomcat]怎么解决大神帮帮忙

    springboot项目启动,昨天还好好的,突然就启动不了了.什么配置也没改,对springboot'也不熟悉,有没有大神解决下?谢谢!   .   ____          _           ...

  2. springboot 闪退。falling back to default profiles: default StandardService - Stopping service [Tomcat]

    大家好,我是烤鸭: 今天分享一个springboot 闪退的问题.确切得说是没有起来. 环境: springboot 版本 2.1.0.RELEASE 异常: 2019-05-25 19:39:00. ...

  3. dubbo启动失败,不报错 Stopping service [Tomcat] was destroying! has been built.

    看看项目中有没有引用jsr303这个jar包,去掉就好了 . . . > generic="false" > destroying! 2020-01-07 22:06: ...

  4. idea运行springboot出现 Disconnected from the target VM, address: ‘127.0.0.1:xxxx‘, transport: ‘socket‘

    idea运行springboot出现 Disconnected from the target VM, address: '127.0.0.1:xxxx', transport: 'socket' 1 ...

  5. 项目无法启动,Disconnected from the target VM

    Connected to the target VM, address: '127.0.0.1:63073', transport: 'socket'Disconnected from the tar ...

  6. 启动Spring项目报错,Springboot启动报错 Disconnected from the target VM 解决过程

    启动Spring项目报错,Springboot启动报错 Disconnected from the target VM 解决过程 大概率是缺少了一下依赖 <dependency><g ...

  7. SpringBoot项目启动Disconnected from the target VM

    问题,新建的SpringBoot项目启动Disconnected from the target VM , address: '127.0.0.1:57137' 处理的几个方案: 1.是端口问题,在属 ...

  8. 端口号被占用:Disconnected from the target VM, address: ‘127.0.0.1:XXXX‘, transport: ‘socket‘

    debug启动Spring boot项目的时候,项目没有启动起来.log最后一行,显示Disconnected from the target VM, address: '127.0.0.1:XXXX ...

  9. Spring Boot——[Disconnected from the target VM, address: IP:端口, transport: #39socket#39]解决方案

    问题描述 问题分析 1.tomcat出问题了,更换本地的tomcat 2.maven出问题了,更换maven 3.tomcat和maven可能同时出问题,这个当然需要都更换一下了 4.项目中jdk的编 ...

最新文章

  1. 图片服务器的url hash架构
  2. CSS 行高与行对齐精解:line-height 和 vertical-align (图文)
  3. 节能无线信标Ver0:功率测试
  4. java工程引用其他工程,Android工程:引用另一个Android工程的方法详解
  5. PIC单片机入门_同步/异步通信技术基础
  6. go语言中处处可见的for循环
  7. ARP、Tracert、Route 与 NBTStat命令详解
  8. Linux-获得命令帮助man
  9. sql设置自增字段的标识行
  10. MySQL慢查询分析方法
  11. 21天学通python-21天学通python
  12. c#开发大全、系列文章、精品教程
  13. [bzoj1033] [ZJOI2008]杀蚂蚁 Big MoNI
  14. 使用ES6的Promis完美解决ajax的回调(优化代码)
  15. JavaEE中级.20190615.易买网项目(一).隐藏域.
  16. blast的替代品,使用hmmer寻找同源序列
  17. 移动视频通话的过去、现在和未来
  18. python基础教程第4版pdf百度云-Python入门书籍电子版PDF百度云网盘免费下载
  19. 准备进入ReRAM速度!Crossbar发布SMIC芯片样品
  20. BIM时代要来了?有了这份职业规划who怕who

热门文章

  1. 撤销git reset
  2. 转载:关于调制比、过调制、基波电压和母线电压的概念和关系总结
  3. cad角度命令怎么输入_CAD阵列命令中角度阵列的使用技巧
  4. Hasor-RSF —— 分布式服务框架
  5. Codeforces Round #828 (Div. 3) E2. Divisible Numbers (hard version)
  6. Hex Editor
  7. 怎么使用计算机公式,在excel中怎么运用计算公式进行运算?
  8. oracle12c配置文档,Oracle12C安装配置文档
  9. arcgis小班编号问题 工具箱来喽
  10. 鸿濛和鸿蒙的区别,鸿蒙_若雪如痕_新浪博客