javassist不使用spring boot jar

问题描述 投票:1回答:2

我有一个带有gradle的spring boot应用程序,它使用以下依赖项

compile('org.springframework.boot:spring-boot-starter-data-jpa')

此依赖项包括库中的javassist-3.21.0-GA.jar。当我使用run as springboot应用程序在STS IDE中运行应用程序时,一切正常。但是当我使用命令java -jar <application-jar>运行spring boot jar应用程序时,javassist会抛出异常

javassist.NotFoundException: <class name>
spring-boot gradle spring-data-jpa javassist
2个回答
1
投票

默认情况下,Javassist仅从类路径中查找类。但Spring Boot在将其捆绑在自执行文件中时使用自己的类加载器层次结构。出于这个原因,您需要手动注册此类加载器。看看ClassPool#appendClassPath on how to include additional class path elements。您需要在LoaderClassPath中包含类ClassLoader。


0
投票

如果要在springboot用户类上执行字节码分析,那么唯一的方法是提取springboot jar并将每个类添加到classPath,以便javassist可以对其执行字节码分析。

© www.soinside.com 2019 - 2024. All rights reserved.