WSO2 программно обновляет конфигурацию конечной точки

Я написал эти строки кода для доступа и программного изменения конфигураций конечных точек с балансировкой нагрузки, сохраненных в моем локальном реестре esb (4.7.0). [в нескольких словах я добавляю новую конечную точку адреса в список конечных точек балансировки нагрузки]

    SynapseConfiguration sc = synapseMsgContext.getConfiguration();

    LoadbalanceEndpoint le =(LoadbalanceEndpoint) sc.getEndpoint("test");       
    List<Endpoint>list = le.getChildren();
    AddressEndpoint ad = new AddressEndpoint();
    EndpointDefinition  def = new EndpointDefinition();        
    def.setAddress("http://172.17.54.101:8083/RestService/rest/servizio");
    def.setAddressingOn(false);
    def.setTimeoutAction(100);
    ad.setDefinition(def);
    list.add(ad);
    le.setChildren(list);
    sc.updateEndpoint("test", le);
    synapseMsgContext.setConfiguration(sc);

Согласно этим строкам кода обновления конечной точки хранятся в памяти и теряются при перезапуске ESB. Таким образом, это обновление длится только до остановки esb.

Как сделать эти обновления постоянными? Я имею в виду эффективное обновление файла конфигурации конечной точки xml?


person Alex    schedule 11.12.2013    source источник


Ответы (1)


Вы должны проверить серилайзер конечной точки и фабрику. http://svn.wso2.org/repos/wso2/carbon/platform/branches/turing/dependencies/synapse/2.1.2-wso2v3/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/

person Ratha    schedule 12.12.2013
comment
Я проверил EndpointFactory и EndpointSerializer. Но я не нахожу ничего, что могло бы мне помочь. Фабрика конечных точек позволяет мне создать новую конечную точку (я уже делаю это), а сериализатор позволяет мне сериализовать в элемент xml. Хорошо, но мне нужно вызывать ту же функцию, которую я использую в пользовательском интерфейсе, когда я нажимаю «Сохранить и закрыть» после создания или изменения новой конечной точки. Не могли бы вы мне это предложить? Я должен увидеть обновленный файл конфигурации конечной точки в файловой системе. - person Alex; 12.12.2013
comment
Вы можете просто использовать службу EndpointAdmin для сохранения вашей конфигурации в файловой системе. svn.wso2.org/repos/wso2/carbon/platform/branches/turing/ - person Ratha; 12.12.2013
comment
Это служба администратора, которую мы используем из пользовательского интерфейса для сохранения конфигурации. У вас может быть собственная логика, иначе напишите клиента для этой службы администратора и используйте его. - person Ratha; 12.12.2013
comment
отлично ... нашел функцию saveEnpoint внутри EndpoinAdmin. Оно работает - person Alex; 12.12.2013