Spring Boot应用程序 Jolokia-启动期间的例外



我正在使用Spring Boot 1.5.3.Release和Jolokia 1.3.6(也发生在以后的版本中)。

通过添加依赖性来整合Jolokia:

 <dependency>
     <groupId>org.jolokia</groupId>
     <artifactId>jolokia-core</artifactId>
 </dependency>

我们所有共享相同体系结构的微服务之一无法启动,我在启动期间看到了以下根本原因的例外:

Caused by: java.io.FileNotFoundException: JAR entry BOOT-INF/lib/jolokia-core-1.3.7.jar!/META-INF/simplifiers-default not found in <MY_JAR_NAME_GOES_HERE>.jar
    at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:142)
    at sun.net.www.protocol.jar.JarURLConnection.getInputStream (JarURLConnection.java:150)
    at java.net.URL.openStream(URL.java:1045)
    at org.jolokia.util.ServiceObjectFactory.readServiceDefinitionFromUrl(ServiceObjectFactory.java:90)

当我从IDE启动应用程序时,只有当我从java -jar <MY_JAR>开始时,就不会发生此例外。

我查看了在Jolokia代码中产生例外的行,看起来像这样:

reader = new LineNumberReader(new InputStreamReader(new URL(pUrl).openStream(),"UTF8"));

因此,我得出(在调试之后)结论new URL(pUrl).openStream()无法找到上述异常堆栈跟踪中指定的JAR条目。我也知道,在IDE中,它不会发生,因为它可以与不同的类负载器一起使用(Spring Boot应用程序使用LaunchedURLClassLoader)。

但是,我在源代码中没有看到一个错误:我们有很多微服务,所有这些都以相同的配置运行,并且据我所知,它是按预期运行的。乔洛基亚集成的方式。

所以我怀疑这里有些种族状况,但我无法真正指出这里发生的事情。

有人遇到了这样的问题吗?有解决方法吗?

我得到的例外完全相同。在我的情况下,问题是文件名具有+(我使用Reckon Gradle插件来生成项目版本)。解决方案是在使用java -jar运行之前将文件重命名。

我正在面对同样的问题,春季靴1.5.22和默认版本的jolokia。

我有另一个没有问题的应用程序(同一版本的Springboot,Jolokia)...我没有发现两个应用程序之间有任何区别...

但是我有解决方法:指示弹簧靴提取Jolokia jar,以跳过Spring Boot nested Jar url for Jolokia Jar。

         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <requiresUnpack>
                    <dependency>
                        <artifactId>jolokia-core</artifactId>
                        <groupId>org.jolokia</groupId>
                    </dependency>
                </requiresUnpack>
            </configuration>
        </plugin>

请参阅https://docs.spring.io/spring-boot/docs/1.5.x/reference/htmlsingle/#howto-wotto-extract-scract-specific-libraries-libraries-when-an-an-an-executable-jar-jar-jar-runs

使用此解决方法,Jolokia很高兴,/Jolokia endpoint都可以使用,Spring Boot Admin JMX TAB处于活动状态。

相关内容

  • 没有找到相关文章

最新更新