springboot+dubbo修改扫描路径引起端口占用的问题
因为在多模块项目中引入了spring security,消费方(控制层)的工程有两个包,一个controller,一个config。引入之前消费方工程的application.properties中spring.dubbo.scan=com.***.***.controller没有问题,引入之后由于config包下面的一个文件也要调用提供方(服务层)的服务,所以改为spring.dubbo.scan=com.***.***,即config包和controller包的上级目录。启动项目时报错java.net.BindException: Address already in use: bind,意思推测为端口占用。检查消费方工程和提供方工程的application.properties,发现两个都是spring.dubbo.protocol.port=20880。改掉其中一个,项目正常启动,且config和controller两个包都可以被dubbo扫描到。
这里就产生了一个问题,既然之前消费方工程和提供方工程设置的dubbo端口一样,为什么之前不会报错,修改扫描路径之后就会报错呢?
既然推测是修改扫描包路径导致了端口占用问题(尽管直接这么说有些莫名其妙),就来比较一下修改前后的扫描包路径:
消费方工程 提供方工程
修改前:com.***.***.controller com.***.***.service.impl
修改后:com.***.*** com.***.***.service.impl
区别在哪?
区别在于修改前的两个路径相互独立,而修改后消费方工程的扫描路径包含了提供方工程的扫描路径,dubbo重复扫描了提供方工程,第二次发布至相同端口时就会报错。
以上仅为一时之浅见,并不能保证百分百正确。
————强势分割————
当天晚上的补充:
在按照上面的思路自以为解决了问题之后,虽然好几次测试都成功了,但是后来却出现了mybatis报invalid bound statement。由于修改之后的扫描路径让我感觉到违和,再加上走投无路之下的我将config包拖到controller包下面,将消费方工程的dubbo扫描路径重新改为com.***.***.controller以避免和提供方的扫描路径重复,问题再一次解决了(确信)。
springboot+dubbo修改扫描路径引起端口占用的问题的更多相关文章
- 【Jenkins】Jenkins安装修改默认路径和端口的方法
一.修改默认的jenkins安装路径 因为jenkins默认安装在c盘 C:\Users\Administrator\.jenkins下,那怎样将安装路径修改至d盘呢? 新建一个系统变量:JENKIN ...
- SpringBoot+Dubbo+ZooKeeper+Maven入门实践
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11798626.html 注*** 本实例为仅适合初学者,关于dubbo和springboot以 ...
- springboot+dubbo之多端口注入服务
前面介绍了,springboot+dubbo基础整合,这篇介绍多端口注入服务. springboot使用@Bean注入dubbo服务,当你是单一的ProviderConfig实例,dubbo的@Ser ...
- Maven入门---修改tomcat版本及端口及访问路径(四)
Maven中通过添加插件修改tomcat版本及端口及访问路径 --------------------------------------------------------------------- ...
- 十分钟搭建微服务框架(SpringBoot +Dubbo+Docker+Jenkins源码)
本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个应用程 ...
- 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...
原文:手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 本文你将学到什么? 本文将以原理+实战的方式,首先对& ...
- 搭建SpringBoot+dubbo+zookeeper+maven框架(一)
这几天项目还没来,所以就自己试着参考网上的一些资料,搭建了一个SpringBoot+dubbo+zookeeper+maven框架,网上参考的很多资料照着他们一步一步搭建,最后很多都运行不通,很是郁闷 ...
- 超详细,新手都能看懂 !使用SpringBoot+Dubbo 搭建一个简单的分布式服务
来自:JavaGuide Github 地址:https://github.com/Snailclimb/springboot-integration-examples 目录: 使用 SpringBo ...
- springboot+dubbo+zookeeper+mybatis
参考地址:https://www.cnblogs.com/gaopengfirst/p/9555240.html 首先创建一个maven项目: 再在该父项目中创建3个module,分别是:provid ...
随机推荐
- version `GLIBC_2.17' not found 解决方法
1.先查看是哪个函数用的是GLIBC_2.17 root@emb-pc:/home/emb/temp# nm lib61850.so | grep GLIBC_2.17 U clock_gettime ...
- JAVA的DES加密解密在windows上测试一切正常,在linux上异常
windows上加解密正常,linux上加密正常,解密时发生 如下异常,异常信息如下: [ERROR] 2018-10-15 09:30:35,998 method:com.iscas.ippc.co ...
- @property的使用
1.可以将某个函数变为属性 class Name(): @property def name(self): print('xiaoming') Name().name这里name已经可以当做属性来调用 ...
- Go 1.11 Module 介绍
title: "Go 1.11 Module" date: 2018-10-26T23:50:56+08:00 draft: false --- Go 1.11 Module 介绍 ...
- 安装Git Bash图文教程
1.下载Git Bash,下载地址 https://pan.baidu.com/s/1sllsi0d 2.双击Git-2.9.2-64-bit.exe,运行,进行安装:点击“Next” 3.设置安装路 ...
- VMare Workstation 12 安装 AsteriskNow freePBX
一.准备工作 VMware 12 安装好的电脑 AsteriskNow iso文件 官网地址 https://www.asterisk.org/downloads 本人提供相关分享:https:// ...
- jenkins部署前后端分离的vue项目
1 General Name: 变量名. 类似给分支起一个名字的意思, 可随意取 Description: 描述, 非必填 Parameter Type: 选择 Branch or Tag Defau ...
- redis哨兵架构的基础知识及部署和管理
一.前言 1.哨兵的介绍 sentinal,中文名是哨兵 哨兵是redis集群架构中非常重要的一个组件,主要功能如下 ()集群监控,负责监控redis master和slave进程是否正常工作 ()消 ...
- python 模拟百度搜索
import urllib.request def Url(url): flag = input("请输入要搜索的关键字:") headers_ = { "User-Ag ...
- c# 访问共享文件
#region 连接共享文件夹 /// <summary> /// 连接共享文件夹 /// </summary> public bool ConnectToSharedFold ...