我有一个简单的spring Boot 应用程序,它带有一个PostMapping。我在最后返回一个包含一个表的文本,基本上这个表是在我在spring Boot 应用程序中运行命令后通过追加行创建的。下面是一个格式不好的ss。我的问题是,当使用(java -jar app.jar)x1c 0d1x在终端中运行应用程序时,这个表的格式不正确
下面是从Intellij运行时的好表:
这是它用来返回文本的代码。
@PostMapping("/newman")
public ResponseEntity<String> triggerNewmanTests(@Valid @RequestBody NewmanRequesBody requestBody) throws NewmanException {
String uuidRequest = UUID.randomUUID().toString();
File directory = directoryService.createDirectory(requestBody.getLinkRepo(), uuidRequest);
logger.info("Directory created under "+directory.getAbsolutePath());
try {
gitService.cloneRepo(requestBody.getLinkRepo(), directory);
logger.info("Directory cloned under "+directory.getAbsolutePath());
StringBuilder newmanStringBuilder = newmanService.triggerNewman(
requestBody.getLinkRepo(),
requestBody.getEnvironment(),
uuidRequest
);
logger.info(newmanStringBuilder.toString());
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.add("Content-Type", "text/plain; charset=UTF-8");
return new ResponseEntity<>(newmanStringBuilder.toString(),responseHeaders, HttpStatus.OK);
字符串
我不得不提的是,log(logger.info(newmanStringBuilder.toString());)在终端中也能很好地打印文本,所以基本上请求会发生一些事情,在Intellij中的传输中可能会添加一些东西。
1条答案
按热度按时间ecfsfe2w1#
解决了这个问题!基本上我运行的命令,
newman run collection
返回了一个终端x1c 0d1x可以理解的颜色响应因此,Java在响应中添加了颜色代码,实际上它被打印出来了。不知何故,Intellij从响应中删除了这些颜色代码(我不知道如何,我找不到关于Intellij如何实际运行代码的文档)
修复程序如下所示:
字符串
在修复这个问题后,
java -jar app.jar
运行流畅,我在响应中得到了好的字符。但是在我的上下文中,我在一个docker容器中运行这个jar,这又一次破坏了我的响应。
要解决这个问题,你必须在你的docker容器中添加locale,在我的例子中,添加这个解决了这个问题:
型