2016-03-22 20 views
0

weblogicサーバにアプリケーション(EAR/WAR/JAR)をデプロイするオプションを探しています。このスクリプトはJavaメインクラスで実行されます。weblogicサーバスクリプトを使用してアプリケーションをプログラマティックにデプロイする

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から?

+0

**タスクを実行するには、** wldeploy **タスクを使用します。そして、* java *を使ってantタスクを実行することもできます。 – Sanjeev

+0

@Sanjeev ANTを使用して、条件に基づいてサーバーを起動および停止し、展開する例 – Rembo

+0

別のアプローチは、WLSTスクリプトを使用することです。 – devwebcl

答えて

1

Weblogic Antタスクは、アプリケーションを作成する代わりに使用できます。これはWeblogic Ant Task docsです。これに続いてexampleもできます。

reference

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

0

this post WLSが有効になっていないRuntimeMBeanServer原因不平を言っている場合は、それを可能にするチェックは、WebLogicを再起動します。

仮定:

  1. WLSドメインが配置されているに /オラクル/アプリ/オラクル/ gc_inst/user_projects/domains/domainNameですGCDomain
  2. が他のバージョンでテストされていない、WLS10.3.6に適用されます。

はここで手順は次のとおりです。

1.1:

1)であれば無効プラットフォームMBeanサーバーを有効にします。 WLS管理コンソールから、GCDomain> Configuration> General> Advancedの順に進みます。

1.2。 Platform MBean Server Enabledを選択し、変更を保存して変更を有効にします。

1.3。管理サーバーを再起動します。

2))GCDomain

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

3用のenv変数を有効にWLSTからRuntimeMBeanServerEnabledを有効にするには、 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() 
それに

幸運!

関連する問題