gpt4 book ai didi

java - 无法安排作业 Erp 配置上下文

转载 作者:行者123 更新时间:2023-11-30 05:39:52 24 4
gpt4 key购买 nike

我正在尝试使用 Quartz 安排作业,但无法安排 ErpConfigContext ,当我发出请求时,工作正常。

但是在预定的作业中,这会返回一个错误。

//请求工作

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

new ODataScheduledFetch().execute();
}

//作业类不工作公共(public)类 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 在执行不是由请求触发的后台任务时?]

关于这个Creating ErpConfigContext threw exception

有一个我不明白的答案...

”编辑:请注意,在后台作业中运行代码(不是由请求触发)时,您必须使用 RequestContextExecutor::execute 包装代码。

"

最佳答案

查看您的代码示例,我假设您没有使用 Spring Boot,这是链接问题的焦点。

您需要做的是将预定的调用包装到RequestContextExecutor::execute中称呼。对于您的示例,它看起来像这样:

@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
new RequestContextExecutor().execute(() -> {
new ODataScheduledFetch().execute();
});
}

根据您在 ODataScheduledFetch::execute 调用中执行的操作,您可能需要使用 JwtBasedRequestContextExecutor (仅限 CloudFoundry)。

<小时/>

了解更多背景信息:

所有 *Accessor 类(例如 TenantAccessorDestinationAccessor )依赖于所谓的 RequestContext在当前线程/请求中可用。这样的 RequestContext 是由 RequestContextExecutor 创建的,如上所述。

为了让您在通常的用例(即接收请求)中生活更轻松,我们会自动加载 RequestContextServletFilter它为您包装所有传入的请求。

这就是您的代码在请求中工作但未计划的原因。

关于java - 无法安排作业 Erp 配置上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55873841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com