Power BI 与 Azure AD B2C 集成
Power BI integration with Azure AD B2C
我有一个应用程序 运行 Azure AD B2B,其中前端是应用程序服务 (SPA - Angular 11),后端是 Azure Function 应用程序 (java)。我有 Power BI Pro 用户帐户。我已将 Power BI 报告集成到我们的应用程序中。
对于 Power BI 集成,我参考了 official documentation here and the java code to get the tokens and the embed URL, from here
这似乎工作正常。 (我正在使用主用户并通过访问报告)
我现在正计划切换到 Azure AD B2C。我正在使用与 B2C 一起使用的相同应用程序。唯一不起作用的是 Power BI 报告。
我在尝试获取报告的嵌入式 URL 时,在函数应用程序中收到以下错误。示例代码中的方法可以在java code here
中找到
2021-06-29T09:46:06.998 [Error] Executed 'Functions.PowerBIEmbeddedToken' (Failed, Id=<id>, Duration=7019ms)
Result: Failure
Exception: NoSuchMethodError: org.springframework.util.Assert.noNullElements(Ljava/util/Collection;Ljava/lang/String;)V
Stack: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.microsoft.azure.functions.worker.broker.JavaMethodInvokeInfo.invoke(JavaMethodInvokeInfo.java:22)
at com.microsoft.azure.functions.worker.broker.JavaMethodExecutorImpl.execute(JavaMethodExecutorImpl.java:54)
at com.microsoft.azure.functions.worker.broker.JavaFunctionBroker.invokeMethod(JavaFunctionBroker.java:57)
at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:33)
at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:10)
at com.microsoft.azure.functions.worker.handler.MessageHandler.handle(MessageHandler.java:45)
at com.microsoft.azure.functions.worker.JavaWorkerClient$StreamingMessagePeer.lambda$onNext[=10=](JavaWorkerClient.java:92)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: org.springframework.util.Assert.noNullElements(Ljava/util/Collection;Ljava/lang/String;)V
at org.springframework.web.client.HttpMessageConverterExtractor.<init>(HttpMessageConverterExtractor.java:78)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.<init>(RestTemplate.java:988)
at org.springframework.web.client.RestTemplate.responseEntityExtractor(RestTemplate.java:819)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:582)
at net.com.techman.service.PowerBIService.getEmbedConfig(PowerBIService.java:81)
at net.com.techman.service.PowerBIEmbeddedService.fetchEmbeddedToken(PowerBIEmbeddedService.java:45)
at net.com.techman.function.PowerBIEmbeddedTokenFunction.run(PowerBIEmbeddedTokenFunction.java:44)
... 16 more
这是 Spring 的问题。更新 Spring 及其依赖项以解决问题。
我有一个应用程序 运行 Azure AD B2B,其中前端是应用程序服务 (SPA - Angular 11),后端是 Azure Function 应用程序 (java)。我有 Power BI Pro 用户帐户。我已将 Power BI 报告集成到我们的应用程序中。
对于 Power BI 集成,我参考了 official documentation here and the java code to get the tokens and the embed URL, from here
这似乎工作正常。 (我正在使用主用户并通过访问报告)
我现在正计划切换到 Azure AD B2C。我正在使用与 B2C 一起使用的相同应用程序。唯一不起作用的是 Power BI 报告。
我在尝试获取报告的嵌入式 URL 时,在函数应用程序中收到以下错误。示例代码中的方法可以在java code here
中找到2021-06-29T09:46:06.998 [Error] Executed 'Functions.PowerBIEmbeddedToken' (Failed, Id=<id>, Duration=7019ms)
Result: Failure
Exception: NoSuchMethodError: org.springframework.util.Assert.noNullElements(Ljava/util/Collection;Ljava/lang/String;)V
Stack: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.microsoft.azure.functions.worker.broker.JavaMethodInvokeInfo.invoke(JavaMethodInvokeInfo.java:22)
at com.microsoft.azure.functions.worker.broker.JavaMethodExecutorImpl.execute(JavaMethodExecutorImpl.java:54)
at com.microsoft.azure.functions.worker.broker.JavaFunctionBroker.invokeMethod(JavaFunctionBroker.java:57)
at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:33)
at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:10)
at com.microsoft.azure.functions.worker.handler.MessageHandler.handle(MessageHandler.java:45)
at com.microsoft.azure.functions.worker.JavaWorkerClient$StreamingMessagePeer.lambda$onNext[=10=](JavaWorkerClient.java:92)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: org.springframework.util.Assert.noNullElements(Ljava/util/Collection;Ljava/lang/String;)V
at org.springframework.web.client.HttpMessageConverterExtractor.<init>(HttpMessageConverterExtractor.java:78)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.<init>(RestTemplate.java:988)
at org.springframework.web.client.RestTemplate.responseEntityExtractor(RestTemplate.java:819)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:582)
at net.com.techman.service.PowerBIService.getEmbedConfig(PowerBIService.java:81)
at net.com.techman.service.PowerBIEmbeddedService.fetchEmbeddedToken(PowerBIEmbeddedService.java:45)
at net.com.techman.function.PowerBIEmbeddedTokenFunction.run(PowerBIEmbeddedTokenFunction.java:44)
... 16 more
这是 Spring 的问题。更新 Spring 及其依赖项以解决问题。