Java应用程序中Weblogic域目录的路径

时间:2011-08-09 11:23:22

标签: java java-ee weblogic

是否有一种简单的方法来读取运行Java应用程序的Weblogic域的目录路径?

我可以使用System.getProperty(“weblogic.Name”)轻松访问服务器的名称,但我不知道什么是保存Weblogic域文件夹路径的变量(如果有的话)。 / p>

我知道我可以设置一个这样的变量,但我想知道Weblogic中是否有一个变量。

非常感谢

2 个答案:

答案 0 :(得分:10)

System.getProperty("weblogic.Name")将返回WebLogic服务器的名称,因为它在服务器启动期间通过JVM参数从脚本startWebLogic.sh或startWebLogic.cmd传递:

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

您可以添加另一个JVM参数来传递WebLogic域,该域可用作环境变量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");

答案 1 :(得分:4)

您可以使用JMX服务从“RuntimeService>”获取域主目录。 DomainConfiguration>根目录'。您可以使用以下代码从应用程序中获取域目录。

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"));

有关详细信息,请参阅http://download.oracle.com/docs/cd/E17904_01/web.1111/e13728/accesswls.htm#JMXCU144