SAP Cloud Platform でマルチテナント アプリケーションを使用しています。テナントの詳細を取得するときにエラーが発生します。
java.lang.ClassCastException: クラス com.sap.cloud.account.impl.TenantContextImpl をインターフェイス com.sap.cloud.account.TenantContext にキャストできません (com.sap によってロードされた一致するインターフェイス com.sap.cloud.account.TenantContext が見つかりました。クラウドアカウント
問題を引き起こすコード:
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 アプリケーションを作成し、同じコードが正しく機能していることです。