Ошибка при подключении к абоненту Назначение дополнительной учетной записи, подключенной к локальной сети.система в облачном литейном из мультитенантного приложения из учетной записи провайдера через сервис подключения и API S4 SDK.Та же схема работает нормально, когда целевое соединение указывает на другую локальную систему, подключенную к субсчету провайдера.
Ссылается на справку SAP, которая показывает, что у службы связи есть встроенная возможность из коробки: https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/9c0bdd0efc8640739c9d2fa5cfe56cbd.html
получение следующей ошибки при доступе к назначению субсчета подписчика из приложения SAAS провайдера, запущенного в субаккаунте провайдера через API S4 SDK:
Полная трассировка стека:
"2019-04-09T11: 25: 03.714 + 0000 [APP / PROC / WEB / 0] OUT {"writ_at ":" 2019-04-09T11: 25: 03.708Z ", "writ_ts": 2225588987993569, "component_type": "application", "component_id":" 212c1a7d-c897-4834-8f7c-6e2a3d6bfed3" , "space_name": "Песочница", "имя_компонента": "подключение", "component_instance": "0", "organization_id": "-", "correlation_id":"-", "organization_name": "-", "space_id": "f057513a-85e3-4229-B42F-f0fe7a058fa6", "container_id": "10.0.75.11", "тип": "журнал", "регистратор":«org.apache.catalina.core.ContainerBase. [Tomcat]. [локальный]. [/]. [dispatcherServlet] "," thread ":" http-nio-8080-exec-6 "," level ":" ERROR "," Categories ": []," msg ":" Servlet.service () для сервлета [dispatcherServlet] в контексте с путем [] выдало исключение [Ошибка обработки запроса;вложенное исключение: com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: не удалось получить назначения для экземпляра службы подписчика: не удалось получить маркер доступа дляслужба назначения.Если ваше приложение работает в Cloud Foundry, убедитесь, что оно имеет привязку как к службе назначения, так и к службе авторизации и доверительного управления (xsuaa), И что вы либо правильно защитили свое приложение, либо установили для переменной среды «ALLOW_MOCKED_AUTH_HEADER» значение true,Обратите внимание, что типы аутентификации с распространением пользователя, например, основным распространением или потоком носителя SAML OAuth2, требуют защиты вашего приложения и не будут работать при использовании переменной среды «ALLOW_MOCKED_AUTH_HEADER».Если ваше приложение не работает на Cloud Foundry, например, при развертывании в локальном контейнере, рассмотрите возможность объявления переменной среды «destination» для настройки адресатов.] С первопричиной »,« stacktrace »: [« com.sap.cloud.sdk.cloudplatform.security.exception.TokenRequestDeniedException: невозможно получить маркер доступа: службе XSUAA отказано в запросе с состоянием HTTP 401 (неавторизовано).Убедитесь, что вы правильно связали свое приложение с экземпляром службы XSUAA.Обратите внимание, что эта ошибка также может возникнуть, если вы используете план обслуживания, который не подходит для вашего сценария.Если вы создаете приложение SaaS на Cloud Foundry, выберите план приложения "application" при создании экземпляра XSUAA.Если вы создаете службу повторного использования, которая должна использоваться другими приложениями, выберите тарифный план "broker". "," Tat com.sap.cloud.sdk.cloudplatform.connectivity.TokenRequest.executeTokenRequest (TokenRequest.java:128) ","tat com.sap.cloud.sdk.cloudplatform.connectivity.TokenRequest.requestTokenWithClientCredentialsGrant (TokenRequest.java:385)", "tat com.sap.cloud.sdk.cloudplatform.connectivity.XsuaaService.reenest.aservice.jer ()"," tat com.sap.cloud.sdk.cloudplatform.connectivity.XsuaaService.getServiceToken (XsuaaService.java:216) "," tat com.sap.cloud.sdk.cloudplatform.connectivity.DestinationServiceCommand.getAccessTokerCommand: Destination111) "," tat com.sap.cloud.sdk.cloudplatform.connectivity.DestinationServiceCommand.run (DestinationServiceCommand.java:124) "," tat com.sap.cloud.sdk.cloudplatform.connectivity.DestinationServiceCommand.run (DestinationServiceCom.Java: 28) "" татcom.netflix.hystrix.HystrixCommand $ 2.call (HystrixCommand.java:302) "" тат
com.netflix.hystrix.HystrixCommand $ 2.call (HystrixCommand.java:298) "" тат
rx.internal.operators.OnSubscribeDefer.call (OnSubscribeDefer.java:46) "" тат
rx.internal.operators.OnSubscribeDefer.call (OnSubscribeDefer.java:35) "" тат
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48) "" тат
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30) "" тат
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48) "" тат
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30) "" тат
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48) "" тат
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30) "" тат
rx.Observable.unsafeSubscribe (Observable.java:10327) "" тат
rx.internal.operators.OnSubscribeDefer.call (OnSubscribeDefer.java:51) "" тат
rx.internal.operators.OnSubscribeDefer.call (OnSubscribeDefer.java:35) "" тат
rx.Observable.unsafeSubscribe (Observable.java:10327) "" тат
rx.internal.operators.OnSubscribeDoOnEach.call (OnSubscribeDoOnEach.java:41) "" тат
rx.internal.operators.OnSubscribeDoOnEach.call (OnSubscribeDoOnEach.java:30) "" тат
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48) "" тат
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30) "" тат
rx.Observable.unsafeSubscribe (Observable.java:10327) "" тат
rx.internal.operators.OperatorSubscribeOn $ SubscribeOnSubscriber.call (OperatorSubscribeOn.java:100) "" тат
com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction $ 1.call (HystrixContexSchedulerAction.java:56) "" тат
com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction $ 1.call (HystrixContexSchedulerAction.java:47) "" тат
com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction.call (HystrixContexSchedulerAction.java:69) "" тат
rx.internal.schedulers.ScheduledAction.run (ScheduledAction.java:55) "" тат
java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) "" тат
java.util.concurrent.FutureTask.run (FutureTask.java:266) "" тат
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) "" тат
java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) "" тат
java.lang.Thread.run (Thread.java:836) "]} 2019-04-09T11: 25: 03.754 + 0000
[RTR / 5] OUT connectivity-test.cfapps.eu10.hana.ondemand.com -
[2019-04-09T11: 25: 01.668 + 0000] "GET / odata / UserDetails HTTP / 1.1" 500 0
1257 "https: //.authentication.eu10.hana.ondemand.com/login" "Mozilla / 5.0
(Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko)
Chrome / 73.0.3683.86 Safari / 537.36 "" - "" 10.0.75.11:61046 "
x_forwarded_for: "-" x_forwarded_proto: "https"
vcap_request_id: "eab68130-BFFF-4cf2-733c-da051adfb1db"
response_time: 2,085981657
app_id: "212c1a7d-c897-4834-8f7c-6e2a3d6bfed3" app_index: "0"
x_correlationid: "8e2d22b0-b4c7-4d20-5461-600aea37b2d2"
x_b3_traceid: "7c4752638ec93577" x_b3_spanid: "7c4752638ec93577"
x_b3_parentspanid: "-" b3: "7c4752638ec93577-7c4752638ec93577"
Пожалуйста, помогите.
Спасибо,
Сиддхарт
if (TenantAccessor.getCurrentTenant().getTenantId().equals("<Subscriber tenet id>"))
{
final ErpConfigContext configContext = new ErpConfigContext("TEST_dest");
else
{
< call provider destination using the above code with the destination belonging to Provider account >
}