Jar-файл манипуляции во время выполнения - PullRequest
2 голосов
/ 14 марта 2019

Я пытаюсь изменить мой код Java во время выполнения внутри моего файла .jar. Когда я помещаю свой файл .jar в wso2ei-6.4.0\lib перед запуском. Этот способ работает нормально, но когда я пытаюсь изменить мой файл .jar, wso2 по-прежнему получает мой старый класс внутри jar. Вот мои коды:

package com.Sample.Sample;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.MessageContext; 
import org.apache.synapse.mediators.AbstractMediator;

public class Sample extends AbstractMediator { 

    private static final Log log = LogFactory.getLog(Sample.class);
    private String name;

    public boolean mediate(MessageContext context) { 
        // TODO Implement your mediation logic here
        printTheName(context);
        return true;
    }

    private void printTheName(MessageContext context){

        String getNameFromSQ = (String)context.getProperty("NAME");
        log.debug("Name Value: " + getNameFromSQ);
        String upCaseName = getNameFromSQ.toUpperCase();
        context.setProperty("newName", "Logging newName new new:" + upCaseName);
    }

    public void setPrintTheName(String newName){
        this.name=newName;
    }

    public String getPrintTheName(){
        return name;
    }
}

Мой SQ:

<property name="NAME" value= "Kerem"/>
    <class name="com.Sample.Sample.Sample">
        <property name="printTheName" value= "Log from SQ"/>
    </class>

    <log>
           <property name="newName" expression="get-property('newName')"/>
    </log>

Есть предложения?

1 Ответ

0 голосов
/ 15 марта 2019

Когда вы помещаете .jar в <product home> / lib, он автоматически копируется в каталог <product home> / dropins при запуске сервера.Если вы хотите, чтобы новые артефакты были затронуты, удалите также старый соответствующий артефакт из <product home> / dropins.

...