微服务项目常见问题

maven依赖导入失败

1. 首先,一般安装好maven后,网上都会有教程将maven镜像站换为aliyun的镜像站,具体是在setting.xml文件的mirrors节点中添加如下配置:

<mirror>	
    <id>nexus-aliyun</id>	
    <mirrorOf>*</mirrorOf>	
    <name>Nexus aliyun</name>	
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>	
</mirror>

2. 有的时候,依赖虽然下载失败了,但是相关文件夹中却多了以 .lastUpdated为后缀的文件,此时,如果开发者在开发工具中反复导入,会发现始终无法导入成功,这个时候就需要删除本地仓库中相关的 .lastUpdated文件,可以通过文件搜索找到本地仓库中所有的以 .lastUpdated为后缀的文件,找到后全部删除,再在开发工具中重新导入依赖。

 

maven install 和 maven package 的区别

 在idea项目的maven窗口中可以快速执行命令

他们的具体区别也很简单:

如果service项目依赖dao项目,而dao打了包(package),jar仅仅时打到了dao项目的target下。

这时编译service项目,还是会报错,报错如下,找不到所依赖的dao项目,说明service项目在本地仓库是没有找到它所依赖的dao项目。

然后把dao项目install,本地仓库里有jar了,然后再打包package这个service项目,就不报错了。

 

idea编译的时候报错 java: 找不到符号

假设有两个微服务模块,分别叫A和B,A是你需要发布的项目,但是A里面引入了B。所以在A的项目资源中可以看到B.jar。当在B中新增了一些方法或者属性供A直接调用的时候,在本地测试或许好使。但是打包的时候会报错 java:找不到符号。而这个错误指向你那个新增的方法或属性。这是因为打包的时候,A引入的B.jar还是本地仓库里那个之前的B.jar,所以把B重新install一下,更新本地的B.jar到最新版。之后再打包。问题就消失了。

 

模块间的方法调用问题

例如module1模块要调用module2模块中的工具类。那么就在module1的pom文件中,引入module2即可。

  • module1的pom.xml
<dependency>
    <groupId> module2 的 groupId </groupId>
    <artifactId> module2 的 artifactId </artifactId>
    <version> module2 的 version </version>
</dependency>
  • module2的pom.xml
<groupId> module2 的 groupId </groupId>
<artifactId> module2 的 artifactId </artifactId>
<version> module2 的 version </version>
<name>module2</name>

 

查看某个类属于哪个依赖

我用的开发工具是Idea,由于原项目中所有类已经引入好了,所以直接按住Ctrl键鼠标左键单击就会跳转到class中,然后再定位到这个class。

如图所示,引入一个依赖需要的信息都展示出来了。下面就是在需要该依赖的模块的 pom 文件中直接引入就可以了。

 

通过 feign 远程调用三方项目的接口

下图是微服务A的接口

我在另一个微服务B中想要调用这个接口:

前提:这两个项目都在注册中心之中已经相关的Feign依赖已经引入并配置完毕,在启动类上加@EnableFeignClients注解

1. 首先在B中声明一个接口,并添加注解@FeignClient,value值指向微服务A在注册中心中的服务名。requestMapping的请求类型和路径要和微服务A中的接口定义的一样。

2.在需要调用的类中注入,并直接调用其方法即可使用。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mephisto180502

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值