我知道可以从 Spring Boot 应用程序创建一个可用作 systemd 服务的 jar。我使用本手册从我在 Debian Jessie OS 上的应用程序创建 systemd 服务。Eveyrthing 工作正常,但我找不到如何将日志写入 /var/syslog 的单独文件的方法。正如文档所说:
请注意,与作为 init.d 服务运行时不同,运行应用程序的用户、PID 文件和控制台日志文件在 systemd 下的行为不同,必须使用“服务”脚本中的适当字段进行配置。有关更多详细信息,请参阅服务单元配置手册页。
它应该在 *.service 文件中配置,但我找不到任何合适的选项。有人在这个问题上有任何经验吗?
我有一个Spring Boot应用程序,希望通过集成测试来覆盖我的REST控制器.这是我的控制器:
@RestController
@RequestMapping("/tools/port-scan")
public class PortScanController {
private final PortScanService service;
public PortScanController(final PortScanService portScanService) {
service = portScanService;
}
@GetMapping("")
public final PortScanInfo getInfo(
@RequestParam("address") final String address,
@RequestParam(name = "port") final int port)
throws InetAddressException, IOException {
return service.scanPort(address, port);
}
}
Run Code Online (Sandbox Code Playgroud)
在其中一个测试用例中,我想测试端点在某些情况下是否会抛出异常.这是我的测试类:
@RunWith(SpringRunner.class)
@WebMvcTest(PortScanController.class)
public class PortScanControllerIT {
@Autowired
private MockMvc mvc;
private static final String PORT_SCAN_URL = "/tools/port-scan";
@Test
public void testLocalAddress() throws Exception {
mvc.perform(get(PORT_SCAN_URL).param("address", "192.168.1.100").param("port", "53")).andExpect(status().isInternalServerError());
}
}
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?当前实现不处理从PortScanController.getInfo()抛出的InetAddressException,当我开始测试时,我收到并发生错误:
org.springframework.web.util.NestedServletException: Request processing failed; …Run Code Online (Sandbox Code Playgroud) spring integration-testing spring-mvc spring-test spring-boot