WebLogic Server的脚本以编程方式部署应用程序

问题描述 投票:0回答:2

我期待通过脚本WebLogic Server上的一个选项来部署应用程序(EAR / WAR / JAR),其中脚本通过Java主类执行。

我试图通过Java一样达到相同的:

private static final String wlUsername = "'weblogic'";
private static final String wlPassword = "'welcome1'";

private static void connect() {
        StringBuffer buffer = new StringBuffer();
        buffer.append("connect(");
        buffer.append(wlUsername);
        buffer.append(",");
        buffer.append(wlPassword);
        buffer.append(")");
        log.debug("connect: "+buffer.toString());
        interpreter.exec(buffer.toString());
}


private static void createServers() {
        StringBuffer buf = new StringBuffer();
        buf.append(startTransaction());
        buf.append("man1=create('msEmbedded1','Server')\n");
        buf.append("man2=create('msEmbedded2','Server')\n");
        buf.append("clus=create('clusterEmbedded','Cluster')\n");
        buf.append("man1.setListenPort(8001)\n");
        buf.append("man2.setListenPort(9001)\n");
        buf.append("man1.setCluster(clus)\n");
        buf.append("man2.setCluster(clus)\n");
        buf.append(endTransaction());
        buf.append("print ‘Script ran successfully ...’ \n");
        interpreter.exec(buf.toString());
}

private static String startTransaction() {
        StringBuffer buf = new StringBuffer();
        buf.append("edit()\n");
        buf.append("startEdit()\n");
        return buf.toString();
}

private static String endTransaction() {
        StringBuffer buf = new StringBuffer();
        buf.append("save()\n");
        buf.append("activate(block='true')\n");
        //buf.append("dumpStack()");
        return buf.toString();
}

public static void main(String[] args) {        
        connect();
        enableMbeanServer();
        createServers();
}

private static void enableMbeanServer(){
        StringBuffer buf = new StringBuffer();
        buf.append(startTransaction());
        buf.append("set('CompatibilityMBeanServerEnabled', 'true')");
        buf.append(endTransaction());
        buf.append("shutdown()");
        connect();
        buf.append("print ‘CompatabilityMBeanServer enabled successfully ...’ \n");
        interpreter.exec(buf.toString());
}

但是,结束与下面的例外:

20:41:59.927 DEBUG [main][com.fedex.interfaces.wls.WLSTRunner] connect: connect('weblogic','welcome1')
Connecting to t3://localhost:7001 with userid weblogic ...

The CompatabilityMBeanServer is not initialized properly. 
This might happen if the CompatabilityMBeanServer is 
disabled via the JMXMBean.

To view the root cause exception use dumpStack()

WLST detected that the RuntimeMBeanServer is not enabled. This 
might happen if the RuntimeMBeanServer is disabled via the JMXMBean. 
Please ensure that this MBeanServer is enabled. Online WLST cannot 
function without this MBeanServer.
Exception in thread "main" Traceback (innermost last):
  File "<string>", line 1, in ?
  File "<iostream>", line 22, in connect
  File "<iostream>", line 648, in raiseWLSTException
WLSTException: Error occured while performing connect : "Cannot connect to WLST." 
Use dumpStack() to view the full stacktrace

任何建议或任何想法如何从Java调用部署/取消部署任务?

java scripting weblogic-10.x wlst
2个回答
1
投票

您可以使用WebLogic Ant任务,而不是编写的应用程序做到这一点的。这是Weblogic的Ant任务docs。您可以按照example为好。

要重新启动WebLogic,检查reference

<target name="start-server">
  <wlserver dir="./config" host="127.0.0.1" port="7001" action="start"/>
</target>

this post


0
投票

如果WLS抱怨原因RuntimeMBeanServer未启用,只启用它。

假设:

  1. WLS域位于/ ORACLE /应用程序/ ORACLE / gc_inst / user_projects /域/ GCDomain
  2. 适用于WLS10.3.6,不能在其他版本的测试。

具体操作步骤如下:

1)如果禁用,则启用平台MBean服务器:

1.1。从WLS管理控制台,转到GCDomain>配置>常规>高级

1.2。选择平台MBean服务器启用,保存更改并激活更改。

1.3。重新启动管理服务器。

2)启用GCDomain ENV变量

cd /oracle/app/oracle/gc_inst/user_projects/domains/GCDomain/bin
source setDomainEnv.sh

3)使从WLST的java weblogic.WLST的RuntimeMBeanServerEnabled

Initializing WebLogic Scripting Tool (WLST) ...
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
wls:/offline> readDomain('/oracle/app/oracle/gc_inst/user_projects/domains/GCDomain')
wls:/offline/GCDomain>cd('JMX/NO_NAME_0')
wls:/offline/GCDomain/JMX/NO_NAME_0>set('PlatformMBeanServerUsed','true')
wls:/offline/GCDomain/JMX/NO_NAME_0>set('PlatformMBeanServerEnabled','true')
wls:/offline/GCDomain/JMX/NO_NAME_0>set('RuntimeMBeanServerEnabled', 'true')
wls:/offline/GCDomain/JMX/NO_NAME_0>updateDomain()
wls:/offline/GCDomain/JMX/NO_NAME_0>closeDomain()
wls:/offline>exit() 

与它的好运气!

© www.soinside.com 2019 - 2024. All rights reserved.