我正在尝试使用 Quartz 和 Cant Schedule ErpConfigContext 安排工作,当我提出请求时,工作正常。
但是在预定的工作中,这会返回一个错误。
//请求工作
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
new ODataScheduledFetch().execute();
}
//Job 类不工作 public class JobProductPricing 实现 Job {
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
new ODataScheduledFetch().execute();
}
}
ODataScheduledFetch().execute(),做一些思考并调用这个方法,并在执行时 query.execute(new ErpConfigContext()); 仅在计划作业上返回错误
private boolean tryRequestERP(ODataQuery query,ODataQueryResult[] queryResult) {
boolean boReturn=false;
try {
//queryResult
queryResult[0] = query.execute(new ErpConfigContext());
boReturn = true;
}catch(Exception e) {
String error = e.toString();
System.out.println(error);
boReturn = false;
}
return boReturn;
}
并收到此错误:
[ com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException:无法获取 ConnectivityConfiguration:没有可用的 RequestContext。在执行不是由请求触发的后台任务时,您是否正确配置了 RequestContextServletFilter 或将逻辑包装在 RequestContextExecutor 中?]
有一个我没有得到的答案...
" 编辑:请注意,在后台作业(不是由请求触发)中运行代码时,您必须使用 RequestContextExecutor::execute 包装代码。
"