gpt4 book ai didi

java - 从 jar 中的文件发出解码对象

转载 作者:行者123 更新时间:2023-11-30 06:59:09 24 4
gpt4 key购买 nike

我正在尝试将 Microsoft Application Insights 与我的 spring boot 应用程序结合使用。

它使用 JAXB 使用以下代码从 ApplicationInsights.xml(存储在/java/main/resources 中)加载 xml 配置:https://github.com/Microsoft/ApplicationInsights-Java/blob/master/core/src/main/java/com/microsoft/applicationinsights/internal/config/JaxbAppInsightsConfigurationBuilder.java

这在通过 gradle 运行 spring boot 应用程序时工作正常(因为资源存在于普通文件系统中)。

但是,如果我为这个项目创建一个 jar 文件并尝试运行它,那么我会看到以下错误:

javax.xml.bind.UnmarshalException
- with linked exception:
[java.io.FileNotFoundException: C:\Users\u\Code\ExperimentationService\file:\C:\Users\u\Code\ExperimentationService\build\libs\experimentationService-0.1.0.jar!\ApplicationInsights.xml (The filename, directory name or volume label syntax is incorrect)]

我在 linux 环境中运行时也遇到了同样的问题。

我可以做些什么来使 xml 文件可供解码器使用,或者这是否需要在 Application Insights 的 sdk 中更改?

最佳答案

这看起来像是 SDK 中的错误。我使用调试器单步执行 SDK 代码,它实际上在 jar 中找到了文件,只是无法读取它(如 this question 所述,它不存在于文件系统中,而是存在于 jar 中)。

在此期间您可以尝试的一件事是将 XML 文件放在与 jar 相同的目录中(SDK 将检查它是否有配置文件)。我碰巧认识 AppInsights 团队 - 我会跟进他们,看看我们是否可以发布修复程序。当我发现更多时,将编辑问题。

编辑:

我与 AppInsights Java SDK 团队进行了交谈。该错误已修复,下周应该会发布新版本。

编辑:

这是公关:https://github.com/Microsoft/ApplicationInsights-Java/pull/257

关于java - 从 jar 中的文件发出解码对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31789083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com