2016-10-31 1 views
1

私はmobicents-jainslee-2.7.0.FINAL-jboss-5.1.0.GAを使用しており、簡単なonTimerEventサービスを配備しようとしています。 JBossはすべてのコンポーネントを正しく検出しますが、アクティブ化をクリックするとコンソールにログはありません。一方、onStartedEventSbbはうまく動作します。SbinがMobicentsで起動しないJBoss 2.7.0

なぜこのサービスとSbbがサーバーによって実行されていないのですか?

public class TimerSbb implements Sbb { 
    private Tracer tracer; 
    private SbbContext sbbContext; 
    private TimerFacility timerFacility; 
    private NullActivityContextInterfaceFactory nullActivityContextFactory; 
    private NullActivityFactory nullActivityFactory; 

    private final int TIMER_PERIOD_IN_MILISECONDS = 500; 

    public void onTimerEvent(TimerEvent timerEvent, ActivityContextInterface activityContextInterface) { 
     tracer.info("onTimerEvent"); 
    } 

    public void setSbbContext(SbbContext context) { 
     this.sbbContext = context; 
     tracer = this.sbbContext.getTracer(getClass().getSimpleName()); 
     tracer.info("setSbbContext"); 
     try { 
      Context initialContext = new InitialContext(); 
      timerFacility = (TimerFacility) initialContext.lookup(TimerFacility.JNDI_NAME); 
      nullActivityContextFactory = (NullActivityContextInterfaceFactory) initialContext.lookup(NullActivityContextInterfaceFactory.JNDI_NAME); 
      nullActivityFactory = (NullActivityFactory) initialContext.lookup(NullActivityFactory.JNDI_NAME); 
     } catch (NamingException e) { 
      tracer.warning("NamingException", e); 
     } 
     setupTimer(); 
    } 

    private void setupTimer() { 
     ActivityContextInterface nullActivityContext = nullActivityContextFactory.getActivityContextInterface(nullActivityFactory.createNullActivity()); 
     timerFacility.setTimer(nullActivityContext, null, System.currentTimeMillis(), TIMER_PERIOD_IN_MILISECONDS, 0, new TimerOptions()); 
     nullActivityContext.attach(sbbContext.getSbbLocalObject()); 
     tracer.info("Timer set up. Period = " + TIMER_PERIOD_IN_MILISECONDS + " ms"); 
    } 

    public void unsetSbbContext() { 
     tracer.info("unsetSbbContext"); 
    } 

    public void sbbCreate() throws CreateException { 
     tracer.info("sbbCreate"); 
    } 

    public void sbbPostCreate() throws CreateException { 
     tracer.info("sbbPostCreate"); 
    } 

    public void sbbActivate() { 
     tracer.info("sbbActivate"); 
    } 

    public void sbbPassivate() { 
     tracer.info("sbbPassivate"); 
    } 

    public void sbbLoad() { 
     tracer.info("sbbLoad"); 
    } 

    public void sbbStore() { 
     tracer.info("sbbStore"); 
    } 

    public void sbbRemove() { 
     tracer.info("sbbRemove"); 
    } 

    public void sbbExceptionThrown(Exception e, Object o, ActivityContextInterface activityContextInterface) { 
     tracer.info("sbbExceptionThrown"); 
    } 

    public void sbbRolledBack(RolledBackContext rolledBackContext) { 
     tracer.info("sbbRolledBack"); 
    } 

} 

SBB-jar.xmlの:

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE sbb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD JAIN SLEE SBB 1.1//EN" 
     "http://java.sun.com/dtd/slee-sbb-jar_1_1.dtd"> 

<sbb-jar> 
    <sbb> 
     <sbb-name>TimerSbb</sbb-name> 
     <sbb-vendor>com.example</sbb-vendor> 
     <sbb-version>1.0</sbb-version> 
     <sbb-classes> 
      <sbb-abstract-class> 
       <sbb-abstract-class-name> 
        com.example.slee.TimerSbb 
       </sbb-abstract-class-name> 
      </sbb-abstract-class> 
     </sbb-classes> 

     <event event-direction="Receive"> 
      <event-name>TimerEvent</event-name> 
      <event-type-ref> 
       <event-type-name>javax.slee.facilities.TimerEvent</event-type-name> 
       <event-type-vendor>javax.slee</event-type-vendor> 
       <event-type-version>1.0</event-type-version> 
      </event-type-ref> 
     </event> 

    </sbb> 
</sbb-jar>   

タイマー-service.xmlに:

<service-xml> 
<service> 
    <service-name>Timer Service</service-name> 
    <service-vendor>com.example</service-vendor> 
    <service-version>1.0</service-version> 
    <root-sbb> 
     <sbb-name>TimerSbb</sbb-name> 
     <sbb-vendor>com.example</sbb-vendor> 
     <sbb-version>1.0</sbb-version> 
    </root-sbb> 
    <default-priority>0</default-priority> 
</service> 

deployable-

は、私は1つTimerSbb.javaを持っていますunit.xml:

<deployable-unit> 
    <jar>lib/timer-sbb-1.0-SNAPSHOT.jar</jar> 
    <service-xml>timer-service.xml</service-xml> 
</deployable-unit> 

私はMavenを持つjarファイルを構築しています:ジャー構造は次のとおりです。

example.jar: 

- lib/timer-sbb-1.0-SNAPSHOT.jar 
- timer-service.xml 
- META-INF/deployable-unit.xml 

timer-sbb-1.0-SNAPSHOT.jar: 
- com.example.slee.TimerSbb 
- META-INF/sbb-jar.xml 

答えて

1

問題は、setSbbContextメソッドのTimerFacilityでタイマーを作成したときに発生しました。これはおそらく早すぎたので、メソッドsetupTimer()をonServiceStartedEvent()に移動すると機能します。

1

この1つはかなり古いです、あなたはhttps://github.com/RestComm/jain-slee/releases/latestから最新のを使用できますか?

+0

私はこの事実を認識していますが、いくつかのレガシーシステムで動作します:/ –

+0

このバージョンはコミュニティでサポートされていません。正式サポートのためにtelestaxにお問い合わせください。 – jeand

関連する問題