JBoss Scheduler を使用して cron のようなことができるが、実行にかかった時間ずつ起動時間がずれていってしまう。
たとえば下記のような設定の時、実行に30分かかってしまうと、初回はAM 00:00 に実行、次回は PM 12:30 というようになってしまう。

<server>
  <mbean code="org.jboss.varia.scheduler.Scheduler"
      name=":service=DailyCheckService">
    <attribute name="StartAtStartup">true</attribute>
    <attribute name="SchedulableClass">com.msysh.DailyCheckService</attribute>
    <attribute name="SchedulableArguments">Do process</attribute>
    <attribute name="SchedulableArgumentTypes">java.lang.String</attribute>
    <attribute name="DateFormat">yyyy-MM-dd HH:mm:ss</attribute>
    <attribute name="InitialStartDate">2011-01-01 00:00:00</attribute>
    <!-- 12時間おきに実行 -->
    <attribute name="SchedulePeriod">43200000</attribute>
    <attribute name="InitialRepetitions">-1</attribute>
  </mbean>
</server>

参考リンクなどによると、下記を追加すればよさそう。

<attribute name="FixedRate">true</attribute>

参考リンク