SpringBoot配置多数据源 打成War包启动卡住,没有报任何错误,找不到解决方法,大佬们帮帮忙

ch1126 2020-02-13 04:03:12
在项目中配置了两个数据源
一开始使用jar包启动的,一直没什么问题
这是jar包,正常跑起来


我改成war包之后 用tomcat启动卡住,就卡在最后一步没有报任何错误


打成war包的时候 我把pom文件的spring自带的tomcat移除了,也添加了servlet依赖。

服务器上面是需要打成war包发布的,帮帮忙解决谢谢大佬们,我随机邀请了,第一次发帖
...全文
780 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Miracle_Tan 2020-02-16
  • 打赏
  • 举报
回复
不错不错,
wwwgc119 2020-02-15
  • 打赏
  • 举报
回复
可以的!可以的!
weixin_45613256 2020-02-15
  • 打赏
  • 举报
回复
还是很可以的!
挂电话镹 2020-02-13
  • 打赏
  • 举报
回复
移除tomcat应该在pom文件中如下做法
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--打包的时候不打进去-->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
ch1126 2020-02-13
  • 打赏
  • 举报
回复
积分给错兄弟了 应该平均分的
ch1126 2020-02-13
  • 打赏
  • 举报
回复
引用 18 楼 plutoppppp 的回复:
引用 16 楼 ch1126 的回复:
[quote=引用 15 楼 plutoppppp 的回复:]可是你得先说是哪里的问题
上面发了图呢 是一个order注解
哦哦,据我所知这个jedis.psubscribe方法是个阻塞方法,https://www.jianshu.com/p/33d50fac06b4这篇文章介绍了SpringBootServletInitializer和CommandLineRunner的关系,因为jar的方式是直接使用main进行并将tomcat进行了先行加载,也就是不经过SpringBootServletInitializer进行初始化,而你通过CommandLineRunner并将它设置在了前面,所以在用tomcat时被阻塞了。 以上是对这个order问题的看法。[/quote]谢谢老哥 知道了 爱你
plutoppppp 2020-02-13
  • 打赏
  • 举报
回复
引用 16 楼 ch1126 的回复:
引用 15 楼 plutoppppp 的回复:
可是你得先说是哪里的问题
上面发了图呢 是一个order注解
哦哦,据我所知这个jedis.psubscribe方法是个阻塞方法,https://www.jianshu.com/p/33d50fac06b4这篇文章介绍了SpringBootServletInitializer和CommandLineRunner的关系,因为jar的方式是直接使用main进行并将tomcat进行了先行加载,也就是不经过SpringBootServletInitializer进行初始化,而你通过CommandLineRunner并将它设置在了前面,所以在用tomcat时被阻塞了。 以上是对这个order问题的看法。
ch1126 2020-02-13
  • 打赏
  • 举报
回复
引用 15 楼 plutoppppp 的回复:
可是你得先说是哪里的问题
12楼
ch1126 2020-02-13
  • 打赏
  • 举报
回复
引用 15 楼 plutoppppp 的回复:
可是你得先说是哪里的问题
上面发了图呢 是一个order注解
plutoppppp 2020-02-13
  • 打赏
  • 举报
回复
可是你得先说是哪里的问题
ch1126 2020-02-13
  • 打赏
  • 举报
回复
引用 11 楼 plutoppppp 的回复:
[quote=引用 9 楼 ch1126 的回复:] [quote=引用 7 楼 plutoppppp 的回复:]你强调的是双数据源出现了这种状况,意思是以前是单数据源的,但是这次配置双数据源出错了对吗? 建议直接打包成war包,然后放到外部的tomcat中跑一下试试。 如果不行就仔细对照下配置,试试取消掉一个源行不行,不排除数据库连接除了问题,或者打断点追踪下卡住的地方。
我刚刚试过了 配置单数据源用war包启动还是有问题,用jar包启动还是没问题,我打成war包部署到测试环境过,也是卡在最后这里[/quote] 是这样,现在需要排除下,是不是因为tomcat冲突引起的,所以问一下之前是单数据源吗?单数据源怎么配置? 如果不使用这种AbstractRoutingDataSource的方式,直接使用spring.datasource.druid配置是否可以成功启动? 如果不能成功,需要你确认一下SpringBootServletInitializer的实现,和pom的配置[/quote]但是不知道为啥 jar包是可以用的
ch1126 2020-02-13
  • 打赏
  • 举报
回复
引用 11 楼 plutoppppp 的回复:
[quote=引用 9 楼 ch1126 的回复:] [quote=引用 7 楼 plutoppppp 的回复:]你强调的是双数据源出现了这种状况,意思是以前是单数据源的,但是这次配置双数据源出错了对吗? 建议直接打包成war包,然后放到外部的tomcat中跑一下试试。 如果不行就仔细对照下配置,试试取消掉一个源行不行,不排除数据库连接除了问题,或者打断点追踪下卡住的地方。
我刚刚试过了 配置单数据源用war包启动还是有问题,用jar包启动还是没问题,我打成war包部署到测试环境过,也是卡在最后这里[/quote] 是这样,现在需要排除下,是不是因为tomcat冲突引起的,所以问一下之前是单数据源吗?单数据源怎么配置? 如果不使用这种AbstractRoutingDataSource的方式,直接使用spring.datasource.druid配置是否可以成功启动? 如果不能成功,需要你确认一下SpringBootServletInitializer的实现,和pom的配置[/quote]找到了 爱你 谢谢老哥
ch1126 2020-02-13
  • 打赏
  • 举报
回复
谢谢老哥 我找到原因了 是这个代码引起的,我原本的想法是加上order注解然后等项目跑起来 监听redis的key过期回调,用jar包跑的时候redis key过期回调成功了,我就没管了,没想到是这个问题。我把order注解去掉就可以了
plutoppppp 2020-02-13
  • 打赏
  • 举报
回复
引用 9 楼 ch1126 的回复:
[quote=引用 7 楼 plutoppppp 的回复:]你强调的是双数据源出现了这种状况,意思是以前是单数据源的,但是这次配置双数据源出错了对吗? 建议直接打包成war包,然后放到外部的tomcat中跑一下试试。 如果不行就仔细对照下配置,试试取消掉一个源行不行,不排除数据库连接除了问题,或者打断点追踪下卡住的地方。
我刚刚试过了 配置单数据源用war包启动还是有问题,用jar包启动还是没问题,我打成war包部署到测试环境过,也是卡在最后这里[/quote] 是这样,现在需要排除下,是不是因为tomcat冲突引起的,所以问一下之前是单数据源吗?单数据源怎么配置? 如果不使用这种AbstractRoutingDataSource的方式,直接使用spring.datasource.druid配置是否可以成功启动? 如果不能成功,需要你确认一下SpringBootServletInitializer的实现,和pom的配置
ch1126 2020-02-13
  • 打赏
  • 举报
回复
引用 8 楼 plutoppppp 的回复:
看你用的是mybatis plus ,给你推荐个搭配的多数据源包 dynamic-datasource-spring-boot-starter,也是他们做的,配套的生态
我这里不能用,只能用内网里提供的包,也不能上传包
ch1126 2020-02-13
  • 打赏
  • 举报
回复
引用 7 楼 plutoppppp 的回复:
你强调的是双数据源出现了这种状况,意思是以前是单数据源的,但是这次配置双数据源出错了对吗? 建议直接打包成war包,然后放到外部的tomcat中跑一下试试。 如果不行就仔细对照下配置,试试取消掉一个源行不行,不排除数据库连接除了问题,或者打断点追踪下卡住的地方。
我刚刚试过了 配置单数据源用war包启动还是有问题,用jar包启动还是没问题,我打成war包部署到测试环境过,也是卡在最后这里
plutoppppp 2020-02-13
  • 打赏
  • 举报
回复
看你用的是mybatis plus ,给你推荐个搭配的多数据源包 dynamic-datasource-spring-boot-starter,也是他们做的,配套的生态
plutoppppp 2020-02-13
  • 打赏
  • 举报
回复
你强调的是双数据源出现了这种状况,意思是以前是单数据源的,但是这次配置双数据源出错了对吗? 建议直接打包成war包,然后放到外部的tomcat中跑一下试试。 如果不行就仔细对照下配置,试试取消掉一个源行不行,不排除数据库连接除了问题,或者打断点追踪下卡住的地方。
ch1126 2020-02-13
  • 打赏
  • 举报
回复
看这里看这里
ch1126 2020-02-13
  • 打赏
  • 举报
回复
卡在最后一段Located MBean 'report': registering with JMX server as MBean [com.alibaba.druid.pool:name=report,type=DruidDataSource]
加载更多回复(4)

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧