【发布时间】:2016-03-22 11:46:34
【问题描述】:
正在寻找通过脚本在 weblogic 服务器上部署应用程序(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 调用部署/取消部署任务有任何建议或想法?
【问题讨论】:
-
您可以使用 ant 使用 wldeploy 任务来执行此任务。您也可以使用 java 执行该 ant 任务。
-
@Sanjeev 有没有使用 ANT 根据条件启动和停止服务器并部署的示例?
-
另一种方法是使用 WLST 脚本
标签: java scripting weblogic-10.x wlst