HotSwapAgent не удалось преобразовать filePath в classPathPath

Я пытаюсь использовать HotSwapAgent в нашем проекте. Мы используем Wildfly 10.x, и наш Проект развернут в виде взорванного EAR, в котором идет взорванная война. Я добавил следующие 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, но я понятия не имею, что я должен установить.

0 ответов

Вы должны изменить convertToClasspathURL в org.hotswap.agent.plugin.spring.scanner.XmlBeanDefinationScannerAgent в соответствии с вашими потребностями.

Кажется, в вашем случае выше только следующее к методу:

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

convertToClasspathURL (после изменения его для ваших нужд classpath):

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;
    }

Надеюсь, это решит вашу проблему!

Другие вопросы по тегам