首先,你需要引用下列JAR Library:
- <mw_home>/wlserver_10.3/server/lib/weblogic.jar
- <mw_home>/oracle_common/webservices/wsclient_extended.jar
- <mw_home>/oracle_common/soa/modules/oracle.soa.mgmt_11.1.1/soa-infra-mgmt.jar
- <mw_home>/Oracle_SOA/soa/modules/oracle.soa.fabric_11.1.1/oracle-soa-client-api.jar
- <mw_home>/oracle_common/modules/oracle.fabriccommon_11.1.1/fabric-common.jar
// 塞入WebLogic連接方式
Hashtable jndiProps = new Hashtable();
jndiProps.put(Context.PROVIDER_URL,
"t3://<host>:<port>/soa-infra");
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
jndiProps.put(Context.SECURITY_PRINCIPAL, "weblogic");
jndiProps.put(Context.SECURITY_CREDENTIALS, "<password>");
jndiProps.put("dedicated.connection", "true");
Locator locator = LocatorFactory.createLocator(jndiProps);
接下來,Locator需要透過一個"DN",識別你的Composite,舉例來說DN的格式如下:
blogdemo/CompositeDemo!1.0其中blogdemo代表Composite被部署所在的partition名稱,"/"之後就是Composite的名稱 - CompositeDemo,最後在"!"之後則是此Composite的版本 - 1.0。
查詢方式:
Composite composite = locator.lookupComposite("<dn>");
最終使用者需要查詢的是某個Composite instance的狀態,這裡我們可以使用對應的CompositeInstance與CompositeIntanceFilter類別來做處理,下面是一個簡單的範例,我們需要找出所有正在執行中的Composite instance:
// 產生CompositeIntance
CompositeInstanceFilter instanceFilter = new CompositeInstanceFilter();
// 指定查詢條件為正在執行的Composite intance
instanceFilter.setState(CompositeInstance.STATE_RUNNING);
List<CompositeInstance> instances = composite.getInstances(instanceFilter);
for (CompositeInstance ins : instances) {
// 做你想做的吧!
}
Enjoy!!!
沒有留言:
張貼留言