2011-08-09 18 views
3

Javaアプリケーションが実行されているWeblogicドメインのディレクトリパスを簡単に読み取る方法はありますか?JavaアプリケーションのWeblogicドメインディレクトリのパス

System.getProperty( "weblogic.Name")を使用してサーバーの名前に簡単にアクセスできますが、Weblogicドメインフォルダのパスを保持する変数は何か分かりません。

私はこれのような変数を設定できることは知っていますが、既にWeblogicに変数があるかどうか疑問に思っていました。それは、サーバの起動時にJVM引数で渡されるよう

感謝

答えて

10

System.getProperty("weblogic.Name")は、スクリプトstartWebLogic.shまたはstartWebLogic.cmdのから、WebLogicサーバーの名前を返します。

%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% ... 

あなたはWebLogicドメインを渡すために、別のJVM引数を追加することができ、それは、環境変数DOMAIN_HOMEとして提供されています:

%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.domainDir=%DOMAIN_HOME%... 

あなたは

System.getProperty("weblogic.domainDir"); 

使用して読み取ることができるまた、直接System.getenv(String)を使用して環境変数DOMAIN_HOMEを読むことができます:

String domainDir = System.getenv("DOMAIN_HOME"); 
3

はあなたがからドメインホームディレクトリのホールドを取得するためにJMXサービスを使用することができます " RuntimeService> DomainConfiguration> RootDirectory 'を選択します。次のコードを使用して、アプリケーション内からドメインディレクトリを取得することができます。あなたはhttp://download.oracle.com/docs/cd/E17904_01/web.1111/e13728/accesswls.htm#JMXCU144

を参照することができます詳細については

InitialContext ctx = new InitialContext(); 
MBeanServer server = (MBeanServer)ctx.lookup("java:comp/env/jmx/runtime"); 
ObjectName service = new ObjectName("com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean"); 
ObjectName domain = (ObjectName)server.getAttribute(service, "DomainConfiguration"); 
System.out.println(server.getAttribute(domain, "RootDirectory")); 

関連する問題