尽管使用了变通办法,但租户不可用

问题描述

我已经实现了 GetAllBusinessPartnerCommand 并自定义了 BusinessPartnerServlet 中的代码。当我尝试使用自定义代码调用应用程序时,总是出现此错误

代码 GetAllBusinessPartnersCommand

package com.sap.cloud.s4hana.examples.commands;

import java.util.Collections;
import java.util.List;

import org.slf4j.Logger;

import com.sap.cloud.s4hana.examples.BusinessPartnerServlet;
import com.sap.cloud.sdk.cloudplatform.logging.CloudLoggerFactory;
import com.sap.cloud.sdk.frameworks.hystrix.HystrixUtil;
import com.sap.cloud.sdk.s4hana.connectivity.ErpCommand;
import com.sap.cloud.sdk.s4hana.datamodel.odata.helper.Order;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.businesspartner.BusinessPartner;
import com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultBusinessPartnerService;

public class GetAllBusinessPartnersCommand extends ErpCommand<List<BusinessPartner>>{
    
    private static final Logger logger = CloudLoggerFactory.getLogger(BusinessPartnerServlet.class);
    public static final String CATEGORY_PERSON ="1";

   

public GetAllBusinessPartnersCommand() {
    
     super(HystrixUtil.getDefaultErpCommandSetter(
             GetAllBusinessPartnersCommand.class,HystrixUtil.getDefaultErpCommandProperties().withExecutionTimeoutInMilliseconds(10000)));
    
}

    @Override
    protected List<BusinessPartner> run() throws Exception {
        
        // Todo Auto-generated method stub
        return new DefaultBusinessPartnerService().getAllBusinessPartner()
                .select(BusinessPartner.BUSInesS_PARTNER,BusinessPartner.LAST_NAME,BusinessPartner.FirsT_NAME,BusinessPartner.IS_MALE,BusinessPartner.IS_FEMALE,BusinessPartner.CREATION_DATE)
                .filter(BusinessPartner.BUSInesS_PARTNER_CATEGORY.eq(CATEGORY_PERSON))
                .orderBy(BusinessPartner.LAST_NAME,Order.ASC)
                .execute();
    }
    
    @Override
    protected List<BusinessPartner> getFallback() {
    logger.warn("Fallback called because of exception:",getExecutionException());
    return Collections.emptyList();
        }
}

在下面您可以看到针对问题集 ALLOW_MOCKED_AUTH_HEADER=true 的命令和提供的解决方法。在测试之前,我检查了所有变量是否设置正确并再次设置 ALLOW_MOCKED_AUTH_HEADER=true 因为我之前设置的太早了。

在这一步之后,我像往常一样构建我的项目,并在我调用服务时从上面得到错误。我还阅读了这篇文章,其中有人遇到了同样的问题并使用了提到的解决方法。但这对我不起作用,我不知道为什么。 TenantNotAvailableException,when trying to call business partner from s4 CF SDK

error when call page

Starting mock-server set variables and workaround plus check

解决方法

遗憾的是,SAP Cloud SDK 2.x 不再受支持。请使用我们的 migration guide 移至最新版本 3.43.0 您也可以在此主题上找到我的 blog post。如果您遇到任何问题,请创建另一个 StackOverflow 问题(带有标签 sap-cloud-sdk)或对博文发表评论。有关更多详细信息,请访问我们的 documentation