package com.erdaoya.springcloud.comx.boot;
/**
* Created by xue on 12/16/16.
*/
import com.alibaba.fastjson.JSONArray;
import com.erdaoya.springcloud.comx.context.Context;
import com.erdaoya.springcloud.comx.context.ContextBuilder;
import com.erdaoya.springcloud.comx.utils.rest.RequestMessage;
import com.erdaoya.springcloud.comx.utils.rest.ResponseMessage;
import java.util.List;
/**
* 业务无关日志
* sandbox and meta
* read comx.conf.json
* request;
*/
public class BootStrap {
public static ResponseMessage start(RequestMessage requestMessage) {
Context context;
try {
context = ContextBuilder.build(requestMessage);
//TODO debug mode for meta and sandbox
Handler handler = new Handler();
handler.handle(context);
} catch(Exception ex){
//TODO 处理各种exception
// 只处理初始化错误,业务错误在handler 处理
// 构建初始环境异常 打印日志,返回服务不可用
ex.printStackTrace();
// 是否针对 jsonp 做特殊处理
return new ResponseMessage(null, ex.getMessage(),500);
}
ResponseMessage response = context.getResponse();
response.setDebug(new JSONArray((List)context.getLogger().getDebugInfo()));
// TODO 处理 jsonp
return context.getResponse();
}
}