我在网上浏览了很多类似的问题,但我似乎找不到解决这个问题的方法。
这是我的 gradle.build:
plugins {
id("java")
id("application")
id("com.github.johnrengelman.shadow") version "6.0.0"
}
mainClassName = "application.Main"
version '1.0'
sourceCompatibility = 1.8
repositories {
jcenter()
}
dependencies {
implementation("net.dv8tion:JDA:4.2.0_168")
implementation group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25'
implementation group: 'org.mongodb', name: 'mongodb-driver', version: '3.12.8'
}
task stage(dependsOn: ['build', 'shadowJar', 'clean', 'test']){
build.mustRunAfter clean
build.mustRunAfter test
}
jar {
manifest{
attributes 'Class-Path': '/libs/myapp.jar', 'Main-Class': 'application.Main'
}
}
compileJava.options.encoding = "UTF-8"
这是我收到的错误消息:
2021-05-01T02:31:34.409537+00:00 app[worker.1]: [JDA MainWS-ReadThread] INFO net.dv8tion.jda.api.JDA - Finished Loading!
2021-05-01T02:31:35.000540+00:00 app[worker.1]: [cluster-ClusterId{value='608cbd85e76f3d5ea3ada104', description='null'}-cluster0-shard-00-01.xxxxx.mongodb.net:27017] INFO org.mongodb.driver.cluster - Exception in monitor thread while connecting to server cluster0-shard-00-01.xxxxx.mongodb.net:27017
2021-05-01T02:31:35.003260+00:00 app[worker.1]: com.mongodb.MongoSocketReadException: Prematurely reached end of stream
最后,这是我使用过的令牌:
mongodb+srv://<user>:<pw>@cluster0.xxx.mongodb.net/<databaseName>?retryWrites=true&w=majority
它在本地工作正常,但无法连接到 Heroku 上的 MongoDB。
顺便说一句,我正在使用一些已弃用的 MongoDB 对象,如 DB
和 DBCollection
,但将其更改为较新版本我将不得不更改大量代码。我不确定它是否相关。
提前致谢。