2016-03-22 14 views
0

Bin auf der Suche nach einer Option zur Bereitstellung der Anwendung (EAR/WAR/JAR) auf Weblogic-Server über Skript, wo das Skript über Java-Hauptklasse ausgeführt wird.Weblogic-Server-Skript zur Bereitstellung der Anwendung programmettictic

Ich habe versucht, das gleiche durch Java wie zu erreichen:

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()); 
} 

Aber am Ende mit der folgenden Ausnahme:

vorschläge oder jede Idee
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 

wie deploy/undeploy Aufgabe aufzurufen von Java?

+0

Sie können ant diese Aufgabe mit der Aufgabe ** wldeploy ** ausführen. Und Sie können diese ant-Aufgabe auch mit * java * ausführen. – Sanjeev

+0

@Sanjeev irgendwelche Beispiele mit ANT zum Starten und Stoppen des Servers basierend auf Bedingungen und Bereitstellung? – Rembo

+0

ein anderer Ansatz ist die Verwendung von WLST-Skripten – devwebcl

Antwort

1

Sie können Weblogic-Ant-Task verwenden, anstatt eine Anwendung dafür zu schreiben. Dies ist Weblogic Ant Aufgabe docs. Sie können diesem example auch folgen.

auf WebLogic neu starten, überprüfen Sie die reference

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

und this post

0

Wenn WLS ist Ursache der RuntimeMBeanServer beschwert nicht aktiviert ist, es nur aktivieren.

Annahmen:

  1. WLS Domäne in /oracle/app/oracle/gc_inst/user_projects/domains/GCDomain
  2. gilt für WLS10.3.6, nicht getestet auf anderen Versionen befindet.

Hier sind die Schritte:

1) Aktivieren Sie Platform MBeanServer wenn deaktiviert:

1.1. Wechseln Sie in der WLS-Verwaltungskonsole zu GCDomain> Konfiguration> Allgemein> Erweitert.

1.2. Wählen Sie Platform MBean Server Enabled, speichern Sie die Änderungen und aktivieren Sie die Änderungen.

1.3. Starten Sie den Verwaltungsserver neu.

2) ermöglichen env Variablen für GCDomain

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

3) ermöglichen die RuntimeMBeanServerEnabled von WLST java weblogic.WLST

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() 

Viel Glück mit ihm !!