小编eja*_*eja的帖子

带有 @Testcontainers 的 Mongo 驱动程序在测试成功运行后抛出异常

我正在使用 testcontainers:mongodb 在示例 spring boot kotlin 项目中设置集成测试。

我已经设置了 MongoDBContaine,一切都按预期工作 - 应用程序连接到 mongodb 并使用存储库进行测试(例如保存、删除)工作得很好,但我注意到测试运行(成功)后 mongodb.driver最后抛出异常 - 看起来容器没有被优雅地关闭/停止 - 这可能吗?

我如何启动容器的示例

companion object {
        @Container
        var mongoDBContainer = MongoDBContainer("mongo:4.4.2")

        @JvmStatic
        @DynamicPropertySource
        fun setProperties(registry: DynamicPropertyRegistry) {
            registry.add("spring.data.mongodb.uri") { mongoDBContainer.replicaSetUrl }
        }
    }
Run Code Online (Sandbox Code Playgroud)

测试方法

@Test fun someTest() {
   autowiredRepository.save(document)
   ...
   ...
}
Run Code Online (Sandbox Code Playgroud)

至于运行类,我只是在其之上使用 @Testcontainers 注释和 @SpringBootTest,没有其​​他任何东西。

我最后得到的例外是

com.mongodb.MongoSocketReadException: Prematurely reached end of stream
    at com.mongodb.internal.connection.SocketStream.read(SocketStream.java:112) ~[mongodb-driver-core-4.2.3.jar:na]
    at com.mongodb.internal.connection.SocketStream.read(SocketStream.java:131) ~[mongodb-driver-core-4.2.3.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:647) ~[mongodb-driver-core-4.2.3.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.receiveMessageWithAdditionalTimeout(InternalStreamConnection.java:512) ~[mongodb-driver-core-4.2.3.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:355) ~[mongodb-driver-core-4.2.3.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.receive(InternalStreamConnection.java:315) ~[mongodb-driver-core-4.2.3.jar:na]
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:215) ~[mongodb-driver-core-4.2.3.jar:na] …
Run Code Online (Sandbox Code Playgroud)

mongodb kotlin spring-boot testcontainers testcontainers-junit5

18
推荐指数
2
解决办法
3140
查看次数

对象映射器 - YAMLFactory - 由于缺少 _createContentReference 方法而出现异常

我正在使用最新的 2.13.0 版本的 jackson,当我尝试解析 YAML 文件时,出现此异常

 java.lang.NoSuchMethodError: 'com.fasterxml.jackson.core.io.ContentReference com.fasterxml.jackson.dataformat.yaml.YAMLFactory._createContentReference(java.lang.Object)'
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?

我包含的依赖项是 jackson-core、jackson-databind 和 jackson-dataformat-yaml - 全部为 2.13.0

java jackson jackson-databind jackson-dataformat-yaml

10
推荐指数
1
解决办法
1万
查看次数

物料设计-将卡扩展(过渡)到全屏

我正在努力实现Android版Material Design所描述的卡片视图的扩展功能。

在他们的设计指南中,他们展示了Card组件的不同布局,但是一个示例显示了Card过渡到全屏 onClick的过程。

这是他们网站上显示的转换:

卡过渡到全屏

我已经尝试过实现这样的功能,但是比他们的指导示例所建议的要花更多的工作...材料设计如何实现这一目标?是否有内置功能?我应该手动翻译卡片并使其适合屏幕大小,还是我应该对整个卡片视图使用全新的片段或活动?

这是包含该示例的设计指南,但是没有任何有关过渡的说明,在文档化的“ 开发”页面上也没有任何内容,这实际上是最小的。

android material-design android-cardview

5
推荐指数
1
解决办法
883
查看次数

当使用 var 和不带参数的泛型方法时,Java 如何推断类型?

考虑以下不带任何参数的泛型方法的示例:

private <T> Set<T> create() {
    return new HashSet<T>();
}
Run Code Online (Sandbox Code Playgroud)

根据文档,类型将根据返回值的使用方式(即在赋值期间)从定义的 LHS 类型推断,例如:

Set<Integer> numbers = create();
Run Code Online (Sandbox Code Playgroud)

使用关键字时效果如何var

将编译以下内容:

var numbers = create();
Run Code Online (Sandbox Code Playgroud)

java generics var

5
推荐指数
1
解决办法
229
查看次数

PHP:这些日期(差异?)格式参数是什么(例如。%R%a)

我遇到了几个例子,其中人们共享代码来计算两天之间的差异。

例如。

$now = new DateTime();
$itemDate->diff($now)->format("%r%a")
Run Code Online (Sandbox Code Playgroud)

但几乎总是这些类型的帖子并没有真正解释格式参数是关于什么的。我对常规日期格式参数没问题,但(在这种情况下)不确定例如。%r。

php datetime

3
推荐指数
1
解决办法
6288
查看次数

Goland 无法识别模块

我在 Goland 识别我的进口产品时遇到问题。

所以,有了这样的基本样本结构

 - main.go
 - go.mod
 - folder/something.go
Run Code Online (Sandbox Code Playgroud)

来自不被认可的进口folder

例如,导入以下内容main.go无效,Goland 抱怨该消息Cannot resolve directory somename

import "somename/folder"
Run Code Online (Sandbox Code Playgroud)

go.mod 初始化为go mod init somename

为什么会发生这种情况?为什么 Goland 无法解析我创建的模块的某些名称?

go goland

2
推荐指数
2
解决办法
4435
查看次数