小编der*_*itz的帖子

如何在弹簧启动应用程序中配置Jackson而不覆盖纯java中的弹簧默认设置

在我的春季启动应用程序中,我使用Jackson通过注入ObjectMapper所需的位置来序列化对象.我找到了这个答案:https://stackoverflow.com/a/32842962/447426 但是这个创建了一个新的映射器 - 带有jacksons默认设置.

另一方面,我在官方文件中发现了这一点.我真的不明白.没有示例代码.

那么如何在Springs默认对象映射器的基础上配置弹簧ObjectMapper?

注入时,此配置应在"ObjectMapper"上处于活动状态.

spring jackson spring-boot

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

如何使用selenium和junit测试多个浏览器(版本)

我刚刚发现了硒 - 一个很棒的工具!
我计划运行/使用selenium-ide生成的junit4代码.但我需要它与许多浏览器/网络驱动程序一起运行.这个用例是否有junit/java-pattern?我的第一个想法是使用@RunWith(Parameterized.class)并提供一个WebDrivers列表(该类的参数 - 可能作为列出浏览器和版本的外部文件提供?!).这是一个好主意吗?是否有可能提供一种中心@Parameters方法,供我所有的Selenium测试使用?

有什么替代品?

可能有可能更改Selenium导出的"格式"以最小化手动更改?

java junit selenium

8
推荐指数
1
解决办法
5869
查看次数

如何使用slf4j和java.util.logging登录tomcat

我创建了一个在Tomcat 8上运行的webapp.一如既往,我想使用slf4j,在这种情况下,由java.util.logging支持(因为它是Tomcat的默认值).相关的依赖是这样的:

<!-- logging -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.10</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jdk14</artifactId>
    <version>1.7.10</version>
    <scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我在代码中添加了一些日志语句(信息和调试),但我找不到它们.既没有在控制台输出中(如果我从eclipse启动Tomcat)也没有在/ logs文件夹中创建的任何日志文件中(我的应用程序正常运行).

那么这里缺少什么?我是否必须向conf/logging.properties添加内容(我不想将任何日志配置打包到我的应用程序中)?是否有一个示例如何配置在tomcat中部署的给定webapp的日志记录?

tomcat slf4j java.util.logging

8
推荐指数
1
解决办法
8996
查看次数

在Spring MockMVC中有内置的方法来获取json内容作为Object吗?

在我的Spring项目中,我创建了一些检查控制器/ http-api的测试。有没有办法获取响应的json内容作为反序列化对象?

在其他项目中,我使用了放心的方法,并且有方法直接将结果作为预期的对象来获取。

这是一个例子:

    MvcResult result = rest.perform( get( "/api/byUser" ).param( "userName","test_user" ) )

            .andExpect( status().is( HttpStatus.OK.value() ) ).andReturn();
    String string = result.getResponse().getContentAsString();
Run Code Online (Sandbox Code Playgroud)

该方法返回特定类型的json。如何将此json转换回对象以测试其内容?我知道杰克逊的方法或放心的方法,但是在spring / test / mockmvc中有办法吗

喜欢 getContentAs(Class)

junit spring json spring-mvc

8
推荐指数
1
解决办法
3341
查看次数

向“@WebMvcTest”添加一个额外的 bean

我有一个控制器和一个使用 @WebMvcTest 的测试并且它运行良好。现在我需要添加一些验证逻辑,为此我需要添加一个@Autowired额外的 bean(a @Component,一个 MapstructMapper)。

正如预期的那样,由于@WebMvcTest. (未发现任何组件)

有没有办法将一个 bean 添加到创建的上下文中?

由于我正在使用@MockBeans模拟服务层:有没有办法将所有模拟调用委托给真实对象?有了这个,我可以模拟映射器并委托给真正的映射器?!

spring-test spring-boot

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

Eclipse 如何禁用对 txt 文件的验证 (lsp4e)

我在 Spring Boot 应用程序中创建了一个“banner.txt”文件来自定义横幅。Eclipse 正在验证它(标记来自“lsp4e”),原因不明,我在首选项 -> 验证中找不到文本文件的条目。

错误是Expecting a 'Map' but found a 'Scalar' 完整的文本文件被标记为红色(它只包含类似于 spring 横幅的 ASCII 艺术)

如何禁用验证txt文件?

eclipse

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

读取(日志)文件而不锁定其他进程的重命名/移动

我必须在写入时读取日志文件.问题是,这个日志文件将在某个时间点重命名,我必须保证这个重命名操作是可能的/ java读取过程没有锁定它.

这该怎么做

java file-io

6
推荐指数
1
解决办法
1265
查看次数

jenkins重新部署战争之前自动启动停止远程tomcat(部署插件)

目前jenkins构建了我的项目,最后通过jenkins deploy插件将工件部署在远程tomcat上.问题是,在多次重新部署之后,此过程失败(有时tomcat挂起或(un)部署失败).在所有情况下停止tomcat和手动取消部署有帮助.

有没有办法在构建/部署之前停止tomcat,删除旧的war和appfolder,并在deploy plugin想要部署工件之前重启tomcat?

thx提前

windows tomcat web-deployment jenkins

6
推荐指数
1
解决办法
9345
查看次数

如何模拟maven插件环境和/或项目配置

我想为我的maven-plugin编写单元测试(junit4).我找到的所有例子都使用"AbstractMojoTestCase"(junit3 :-().为了摆脱这个我得到了答案.但问题是Mojos 如何实例化:

MyMojo myMojo = (MyMojo) lookupMojo( "touch", pom );
Run Code Online (Sandbox Code Playgroud)

这意味着我需要为每个测试用例提供一个pom - pom是测试输入数据.但有没有办法模拟(我会使用Mockito)项目模型如何?可能lookupMojo(String groupId, String artifactId, String version, String goal, PlexusConfiguration pluginConfiguration)是一个很好的起点?在这种情况下,我会模拟"PlexusConfiguration",但有什么方法?一些maven-plugin测试doku使用类似"MavenProjectStub"的类.但我无法得到关于如何创建魔法以及它在创作中谈论的界面的一致画面.

一个完美的解决方案就是如果我可以

@inject
MyMojo testObject;
Run Code Online (Sandbox Code Playgroud)

并只是模拟它需要的所有东西让它工作(主要我需要@Parameters)

java dependency-injection maven-plugin maven-3 maven

6
推荐指数
1
解决办法
1121
查看次数

EmbeddedKafka如何在单元测试中检查收到的消息

我创建了一个Spring Boot应用程序,它将消息发送到Kafka主题.我正在使用spring spring-integration-kafka:A KafkaProducerMessageHandler<String,String>订阅了一个channel(SubscribableChannel)并将收到的所有消息推送到一个主题.该应用程序工作正常.我看到通过控制台消费者(本地kafka)到达Kafka的消息.

我还创建了一个使用的Integrationtest KafkaEmbedded.我通过订阅测试中的频道来检查预期的消息 - 一切都很好.

但我希望测试也检查放入kafka的消息.可悲的是,Kafka的JavaDoc并不是最好的.到目前为止我尝试的是:

@ClassRule
public static KafkaEmbedded kafkaEmbedded = new KafkaEmbedded(1, true, "myTopic");
//...
@Before
public void init() throws Exception {

    mockConsumer = new MockConsumer<>( OffsetResetStrategy.EARLIEST );
    kafkaEmbedded.consumeFromAnEmbeddedTopic( mockConsumer,"sikom" );

}
//...

@Test
public void endToEnd() throws Exception {
//  ...

    ConsumerRecords<String, String> records = mockConsumer.poll( 10000 );

    StreamSupport.stream(records.spliterator(), false).forEach( record -> log.debug( "record: " + record.value() ) );


}
Run Code Online (Sandbox Code Playgroud)

问题是我没有看到任何记录.我不确定我的KafkaEmbedded设置是否正确.但是消息是由频道接收的.

junit spring apache-kafka spring-kafka

6
推荐指数
1
解决办法
4701
查看次数