gpt4 book ai didi

java - HotSwapAgent 无法将 filePath 转换为 classPathPath

转载 作者:行者123 更新时间:2023-12-02 10:59:46 24 4
gpt4 key购买 nike

我正在尝试在我们的项目中使用 HotSwapAgent。我们使用的是 Wildfly 10.x,我们的项目被部署为爆炸式 EAR,其中存在爆炸式 war 。我添加了以下 JVM 选项:

-XXaltjvm=dcevm -javaagent:c:\dev\hotswap-agent.jar

当我的 WildFly 部署时,我收到以下错误:

HOTSWAP AGENT: 14:42:40.479 ERROR (org.hotswap.agent.plugin.spring.scanner.XmlBeanDefinationScannerAgent) - failed to convert filePath /C:/dev/projects/project_abc/abc/ABC/target/ABC_Exploded.ear/ABCWeb.war/WEB-INF/config/spring/soap-context.xml to classPath path

当我让 Wildfly 运行时,稍后会显示以下错误并且部署失败。

rror creating bean with name 'systemConfigurationService' defined in ServletContext resource [/WEB-INF/config/spring/service-maintenance-context.xml]: Invocation of init method failed; nested exception is java.lang.reflect.UndeclaredThrowableException

有谁知道如何正确配置吗?我读过您可以将 extraClassPath 放入 HotswapAgent 的属性中,但我不知道应该设置什么。

最佳答案

您必须根据您的需要更改 org.hotswap.agent.plugin.spring.scanner.XmlBeanDefinationScannerAgent 中的 convertToClasspathURL

在您的上述情况中,该方法似乎只有以下内容:

paths = filePath.split("WEB-INF/config/spring");
if (paths.length == 2) {
return paths[1];
}

convertToClasspathURL(根据您的类路径需求修改后):

private static String convertToClasspathURL(String filePath) {
String[] paths = filePath.split("src/main/resources/");
if (paths.length == 2) {
return paths[1];
}

paths = filePath.split("WEB-INF/classes/");
if (paths.length == 2) {
return paths[1];
}

paths = filePath.split("target/classes/");
if (paths.length == 2) {
return paths[1];
}

paths = filePath.split("target/test-classes/");
if (paths.length == 2) {
return paths[1];
}

paths = filePath.split("WEB-INF/config/spring");
if (paths.length == 2) {
return paths[1];
}

LOGGER.error("failed to convert filePath {} to classPath path", filePath);
return filePath;
}

希望能解决您的问题!

关于java - HotSwapAgent 无法将 filePath 转换为 classPathPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51423313/

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