1 Reply Latest reply: Feb 17, 2011 2:18 AM by Hidetoshi.Futagawa-Oracle RSS

    WebLogic11gのWindowsサービス化について

    837723
      WebLogic11g(10.3.3.0)を使用しています。

      マニュアル(winservice.html)を参考にサーバインスタンスをシャットダウンするJavaClass(Example3-2)を作成しているのですが、
      コンパイルが出来ません。

      メッセージは
      weblogic.server.ServerStates を解決できません。必要な .class ファイルから間接的に参照されています
      weblogic.management.runtime.RuntimeMBean を解決できません。必要な .class ファイルから間接的に参照されています
      どうも、
      weblogic.management.runtime.ServerStatesがweblogic.server.ServerStatesを継承しているようですが、
      wlserver_10.3\server\libにあるweblogic.jarの中にはweblogic.server.ServerStatesが存在しない為に
      コンパイルできないようです。

      同様にServerRuntimeMBeanがRuntimeMBeanを継承しているようですが、
      weblogic.jarの中にはRuntimeMBeanが存在していません。

      取り敢えずWebLogic10.2のweblogic.jarも持ってくるとコンパイルは出来たのですが、
      実環境では当然動かないわけです。

      WebLogic10.2のweblogic.management.runtime.ServerStatesはweblogic.server.ServerStatesを継承していないようです。
      ここらへんで11gのweblogic.jarに問題があるのでしょうか?。

      このクラス(Example3-2)を作成しないと、サービス停止時に環境が壊れる可能性もあると書かれているので、
      困っています。

      したいことは、管理サーバ、管理対象サーバのサービス化なのですが、
      だれが、良い方法をご教授お願いできないでしょうか。

      Edited by: user13183923 on 2011/02/07 23:07
        • 1. Re: WebLogic11gのWindowsサービス化について
          Hidetoshi.Futagawa-Oracle
          WLS10.3.3の場合、weblogic.server.ServerStates は %WL_HOME%\server\lib\weblogic.jar の中ではなく、
          %MW_HOME%\modules\com.bea.core.weblogic.lifecycle_1.4.0.0.jar の中にあります。

          weblogic.jar内のMETA-INF/MANIFEST.MFの中でマニフェストクラスパスを連鎖させることによりmodules配下
          の各種jarにはクラスパスが通るようになっています。
          ただし、weblogic.jarのあるディレクトリからの相対パスで通してあるので、weblogic.jarだけを別の場所にコピー
          してクラスパスに入れるだけでは、そのプログラムのコンパイルは通らないはずです。
          WLSをインストールした場所のweblogic.jarをそのままクラスパスに入れていればコンパイルは通るはずです。

          1つのjarだけで完結したい場合は、以下のマニュアルの手順でwlfullclient.jar を作成してクラスパスに入れてください。
          http://download.oracle.com/docs/cd/E14571_01/web.1111/e13717/jarbuilder.htm#BABCGHFH

          ところで、管理サーバ/管理対象サーバをWindowsサービス化は必須なのでしょうか?
          WLSインスタンス自身ではなく、ノードマネージャをWindowsサービス化して、ノードマネージャ経由で管理サーバ、
          管理対象サーバを起動/停止管理するほうがより一般的な方法だと思います。