1

Quartz でジョブをスケジュールしようとしていて、ErpConfigContext をスケジュールすることはできません。リクエストを実行すると、正常に動作します。

ただし、スケジュールされたジョブでは、これはエラーを返します。

//リクエスト作業

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

    new ODataScheduledFetch().execute();
}

//Job クラスが機能しない public class JobProductPricing implements 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 にラップしましたか? ]

このErpConfigContextの作成で例外がスローされました

私が得られない答えがあります...

編集: コードをバックグラウンド ジョブ (リクエストによってトリガーされない) で実行する場合は、コードを RequestContextExecutor::execute でラップする必要があることに注意してください。

"

4

1 に答える 1