项目集成hmily时发现的两个天坑,遇到这连个问题后 由于网上关于hmily的文章很少很少,所以定位问题的时候很头疼,但很庆幸的事 最后都解决了。
看到本篇文章的小伙伴 希望对你能有点帮助
天坑一:日志冲突
解决办法是排除掉hmily自带的日志框架
<dependency>
<groupId>org.dromara</groupId>
<artifactId>hmily-spring-boot-starter-springcloud</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
<version>2.1.1</version>
</dependency>
天坑二: hmily启动有个自带的MongoDB架包问题
我明明灭有引入MongoDB,但启动的时候总是报MongoDB连接超时错误
2021-07-27 18:49:05,301 [main] [com.netflix.discovery.provider.DiscoveryJerseyProvider.<init>(DiscoveryJerseyProvider.java:71)] - [INFO] Using JSON decoding codec LegacyJacksonJson
2021-07-27 18:49:05,468 [cluster-ClusterId{value='60ffe4a00dc9070cc9f506e1', description='null'}-localhost:27017] [com.mongodb.diagnostics.logging.SLF4JLogger.info(SLF4JLogger.java:76)] - [INFO] Exception in monitor thread while connecting to server localhost:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70)
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:128)
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.net.ConnectException: Connection refused: connect
at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method)
at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:107)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.base/java.net.Socket.connect(Socket.java:591)
at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:64)
at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:79)
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65)
... 3 more
后来经过验证 返现是hmily的问题,后来到hmily的github上查看issues,发现也有人遇到了和我一样的问题
解决办法:
启动类排除掉MongoDB
@SpringBootApplication(exclude = MongoAutoConfiguration.class)
补充 坑三: 项目路径上不能有中文,不然读取不到 hmily.yml配置文件