我正在使用SAP Cloud Platform中的多租户应用程序。提取租户详细信息时出现错误:


  java.lang.ClassCastException:无法转换类
  com.sap.cloud.account.impl.TenantContextImpl进行接口
  com.sap.cloud.account.TenantContext(找到匹配的界面
  com.sap.cloud.account.TenantContext由com.sap.cloud.account加载


导致问题的代码:

public class TenantContextManager
{

public TenantContextManager() {
    // TODO Auto-generated constructor stub
}

public String getCurrentAccountId() throws ServletException {
    String currentAccountId;
    try {
        InitialContext ctx = new InitialContext();
        TenantContext tenantctx = (TenantContext) ctx.lookup("java:comp/env/TenantContext");

        currentAccountId = tenantctx.getTenant().getAccount().getId();

    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    return currentAccountId;
}
}


我在“ ODataJPAServiceFactory”类实现中调用此调用的实例。

需要注意的一点是,我创建了一个简单的JSP应用程序,并且相同的代码可以正常工作。

最佳答案

解决了问题。我将运行时从Java Web更改为Java EE 6 Web Profile。看起来该API在Java Web中不可用。

10-06 01:34