2017-01-31 12 views
0

Я реализую однопользовательскую службу в weblogic 12.2.1.2 с EBJ 3.1 в проекте мультимодуля EAR maven.Singleton Service в кластере weblogic регистрирует, но не вызывает метод активации

Моя служба односторонней регистрации регистрируется в кластере.

Это бревно из узла, в котором зарегистрирован:

<BEA-000189> <The Singleton Service Appscoped_Singleton_Service is now active on this server.> 

И это от другого узла:

<BEA-003130> <Appscoped_Singleton_Service successfully activated on server iss3.> 

Одноэлементный служба реализует интерфейс weblogic.cluster.singleton. SingletonService, но методы активировать и дезактивировать не вызывается, когда узлы запускаются или завершаются.

Я читал кое-что о версированных файлах EAR и MANIFEST, но не понял этого.

мне нужна помощь, чтобы сделать методы активизируют и Деактивировать быть вызваны.

Это мой класс:

import java.io.Serializable; 

import javax.inject.Inject; 
import javax.naming.Context; 
import javax.naming.InitialContext; 
import javax.naming.NamingException; 

import com.test.MyTimerLocal; 
import weblogic.cluster.singleton.SingletonService; 

public class MySingletonServiceClass implements SingletonService, Serializable, MySingletonServiceInterface { 

    private static final long serialVersionUID = 3966807367110330202L; 

    private static final String jndiName = "MySingletonServiceClass"; 

    private int myValue; 

    @Inject 
    private MyTimerLocal myTimer; 

    @Override 
    public int getMyValue() { 

     return this.myValue; 
    } 

    @Override 
    public synchronized void setMyValue(final int myValue) { 

     this.myValue = myValue; 
    } 

    @Override 
    public void activate() { 

     System.out.println("activate triggered"); 
     Context ic = null; 
     try { 
      ic = new InitialContext(); 
      ic.bind(MySingletonServiceClass.jndiName, this); 

      System.out.println("Object now bound in JNDI at " + MySingletonServiceClass.jndiName); 

      this.myValue = 5; 

      final String msg = "###################### MySingletonServiceClass.activate():: Fechamento agendado para " + this.myTimer.agendaExecucao() + " ###############"; 
      System.out.println(msg); 
     } catch (final NamingException e) { 
      this.myValue = -1; 
      e.printStackTrace(); 
     } finally { 
      try { 
       if (ic != null) { 
        ic.close(); 
       } 
      } catch (final NamingException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    @Override 
    public void deactivate() { 

     System.out.println("deactivate triggered"); 
     Context ic = null; 
     try { 
      ic = new InitialContext(); 
      ic.unbind(MySingletonServiceClass.jndiName); 
      System.out.println("Context unbound successfully"); 
     } catch (final NamingException e) { 
      e.printStackTrace(); 
     } 
    } 

} 

Спасибо за ваше время.

+0

Почему вы думаете, что методы не вызываются? Из-за отсутствия выходных данных в журналах? – slwk

+0

Я получил эту работу сейчас с этим в моем ** src \ main \ application \ META-INF \ weblogic-application.xml ** ' com.test .MySingletonServiceClass Appscoped_Singleton_Service ' –

ответ

0

я получил это теперь работает с этим в моем ЦСИ \ главная \ приложения \ META-INF \ WebLogic-application.xml

<wls:singleton-service> <wls:class-name>com.test.MySingletonServiceClass</wls:class-name> <wls:name>Appscoped_Singleton_Service</wls:name> </wls:singleton-service>

 Смежные вопросы

  • Нет связанных вопросов^_^