Pivotal Cloud Foundry(PCF)弹簧启动应用程序停止运行且没有错误

时间:2019-02-27 14:55:55

标签: java spring-boot pivotal-cloud-foundry

我有一个Spring Boot应用程序,可以在本地正常运行。使用Postman发送JSON字符串并成功完成请求。

我将应用程序部署到我们的开发PCF环境中。使用该服务的应用程序成功调用它。在服务日志中,它可以正确识别要使用的策略并可以正常工作。然后它应该调用DAO,但是什么也没有发生。没有错误,在调用任何数据库操作之前,DAO中都没有日志记录语句。它只是停止。

还开发并部署了2个其他应用程序来使用此服务,并且它们可以正常工作。这是服务停止工作的区域:

@Component
public class LoadStrategy implements CloseStrategy {
    private static final Logger LOGGER = LoggerFactory.getLogger(LoadStrategy.class);

    private LoadDao loadDao;
    private MapperTranslator<Map<String, Object>, CloseRequest> mapperTranslatorToInputStream;
    private MapperTranslator<CloseResponse, Map<String, Object>> mapperTranslatorToCloseTrailerResponse;

    @Autowired
    public Load Strategy(LoadDao loadDao, 
            @Qualifier("loadRequestMapper")MapperTranslator<Map<String, Object>, CloseRequest> mapperTranslatorToInputStream,
            @Qualifier("loadResponseMapper")MapperTranslator<CloseResponse, Map<String, Object>> mapperTranslatorToCloseResponse) {
        this.loadDao = loadDao;
        this.mapperTranslatorToInputStream = mapperTranslatorToInputStream;
        this.mapperTranslatorToCloseResponse = mapperTranslatorToCloseResponse;
    }

    public CloseResponse close(CloseRequest input) {
        LOGGER.info("Before call to loadDao");
        Map<String, Object> translator = mapperTranslatorToInputStream.translate(input);
        LOGGER.info("Completed input stream mapper. Before calling loadDao");
        Map<String, Object> result = loadDao.close(translator);
        return mapperTranslatorToCloseTrailerResponse.translate(result);
    }
}

该服务将打印记录器语句“已完成的输入流映射器。在调用loadDao之前” ,然后什么也不会。 在DAO中,该方法的开头有一个logger语句,该语句未打印。

这是DAO类。

@Repository
public class LoadDao implements CloseDao {

    private SimpleJdbcCall simpleJdbcCall;
    private static final Logger LOGGER = LoggerFactory.getLogger(LoadDao.class);

    @Autowired
    public LoadDao(@Qualifier("loadSummaryJdbcCall") SimpleJdbcCall simpleJdbcCall) {
        this.simpleJdbcCall = simpleJdbcCall;
    }

    @HystrixCommand(fallbackMethod = "closeFallback")
    public Map<String, Object> close(Map<String, Object> input) {
        Map<String, Object> result;

        LOGGER.debug("In loadDao Before {}.{} Procedure. Input Stream: {}", PACKAGE, PROCEDURE, input.get(P_INPUT_STREAM));

...课余时间...

我不知道从哪里开始对这个问题进行故障排除这是我在Spring Boot以及PCF环境中的第一个应用程序。 我可以研究的任何领域将不胜感激。

1 个答案:

答案 0 :(得分:0)

万一有人遇到这个问题... 我使用“配置日志记录级别”将日志记录级别更改为TRACE。这样我就可以看到输出了。