首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HotSwapAgent未能将filePath转换为classPathPath

HotSwapAgent未能将filePath转换为classPathPath
EN

Stack Overflow用户
提问于 2018-07-19 12:58:29
回答 1查看 876关注 0票数 0

我正在尝试在我们的项目中使用HotSwapAgent。我们使用的是野蝇10.x,我们的项目被部署为一个爆炸的耳朵,在那里有一场爆发的战争。我添加了以下JVM选项:

代码语言:javascript
复制
-XXaltjvm=dcevm -javaagent:c:\dev\hotswap-agent.jar

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

代码语言:javascript
复制
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运行时,稍后会显示以下错误,并且部署失败。

代码语言:javascript
复制
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的属性中,但我不知道该设置什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-04 09:34:17

您必须更改convertToClasspathURL中的org.hotswap.agent.plugin.spring.scanner.XmlBeanDefinationScannerAgent以满足您的需要。

在您的情况下,上述方法如下:

代码语言:javascript
复制
paths = filePath.split("WEB-INF/config/spring");
        if (paths.length == 2) {
            return paths[1];
        }

convertToClasspathURL (在修改它以满足类路径需求之后):

代码语言:javascript
复制
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;
    }

希望它能解决你的问题!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51423313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档