是否有一种简单的方法来读取运行Java应用程序的Weblogic域的目录路径?
我可以使用System.getProperty(“weblogic.Name”)轻松访问服务器的名称,但我不知道什么是保存Weblogic域文件夹路径的变量(如果有的话)。 / p>
我知道我可以设置一个这样的变量,但我想知道Weblogic中是否有一个变量。
非常感谢
答案 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