成人免费区一区二区三区,97久久久精品综合88久久,午夜伦情电午夜伦情电影 ,欧美老熟妇又粗又大

1. 概述

ODI11G默認(rèn)提供了WebService的調(diào)用接口,供其他各種應(yīng)用程序通過接口控制、訪問ODI自身的同步任務(wù)。

ODI11G在安裝完成,啟動(dòng)代理后,會(huì)自動(dòng)啟動(dòng)webservice的服務(wù)端口,對(duì)外提供WSDL文件服務(wù),外部應(yīng)用可以通過WSDL文件利用各種技術(shù)反向生成自身應(yīng)用程序所需要的調(diào)用代碼,本文將以Axis作為WebService容器來介紹,如何生成代碼并調(diào)用ODI接口。

2.???技術(shù)說明

2.1ODI WebService介紹

ODI在安裝過程中會(huì)默認(rèn)生成一個(gè)“代理“,代理有設(shè)置的端口號(hào),假設(shè)代理的端口為:505,那么當(dāng)代理在服務(wù)器上成功啟動(dòng)以后,會(huì)生成一個(gè)web服務(wù)對(duì)外提供ODI控制所用的WSDL文件,地址為:

http://hostname:505(端口號(hào))/oraclediagent/OdiInvoke?wsdl

2.2生成客戶端調(diào)用代碼

本文檔以Axis生成Java代碼為例進(jìn)行詳細(xì)介紹如下:

首先將附件《WebService調(diào)用ODI所需Eclipse插件》解壓縮至Eclipse的plugins目錄下,并啟動(dòng)Eclipse。

在啟動(dòng)后的Eclipse界面中,點(diǎn)擊fileànewàOther,彈出如下界面:

界面中選擇Axis2 CodeGenerator—>Next:

生成接口調(diào)用client代碼

輸入ODI的WSDL地址:

一般是localhost:505/oraclediagent/OdiInvoke?wsdl

然后根據(jù)提示生成Java代碼,可以選擇將java代碼生成至某已有項(xiàng)目,如oditest

調(diào)用代碼生成完畢之后,便可以正式開始書寫客戶端調(diào)用方法,用于調(diào)用ODI的數(shù)據(jù)同步場(chǎng)景或代理。

2.3編寫Java類,調(diào)用ODI集成場(chǎng)景

以TestOdi類為例:

public?class?TestOdi{

???????public?static?voidmain(String[] args){

??????????????try?{

?????? OdiInvokeStubodiS=new?OdiInvokeStub();

???????//OdiCredentialType,ScenarioRequestType分別是接口調(diào)用的兩個(gè)核心參數(shù)

???????//OdiStartScenRequest是接口調(diào)用的直接參數(shù)

???????OdiStartScenRequeststartScenRequest=new?OdiStartScenRequest();

?????? ScenarioRequestTypescenaroRequest=new?ScenarioRequestType();

?????? scenaroRequest.setContext(“GLOBAL”);

?????? scenaroRequest.setSynchronous(false);

?????? scenaroRequest.setLogLevel(5);

?????? scenaroRequest.setScenarioName(“PKG_SZGS_TO_SSBZ”);

?????? scenaroRequest.setScenarioVersion(“001”);

???????//設(shè)置場(chǎng)景啟動(dòng)所需要的變量

?????? VariableTypevt=new?VariableType();

?????? vt.setName(“PRO_SZGS.RW_ID”);

?????? vt.setValue(“260”);

?????? scenaroRequest.addVariables(vt);

???????//設(shè)置OdiCredentialType變量

?????? OdiCredentialTypeodiCredentialType=new?OdiCredentialType();

?????? odiCredentialType.setWorkRepository(“WORKREP”);

?????? odiCredentialType.setOdiUser(“SUPERVISOR”);

?????? odiCredentialType.setOdiPassword(“sanyuan”);

???????//為OdiStartScenRequest對(duì)象設(shè)置其兩個(gè)核心參數(shù)ScenarioRequestType及OdiCredentialType

?????? startScenRequest.setRequest(scenaroRequest);

?????? startScenRequest.setCredentials(odiCredentialType);

???????//通過OdiStartScenRequest對(duì)象啟動(dòng)ODI已經(jīng)發(fā)布到代理上的場(chǎng)景

?????? odiS.invokeStartScen(startScenRequest);

????????????? }catch(Exception e){

???????????????????? System.out.println(e);

????????????? }

?????? }

}

一、聲明主對(duì)象

在調(diào)用過程中首先需要生命調(diào)用的主對(duì)象:

OdiInvokeStub odiS=new?OdiInvokeStub();。

二、聲明核心參數(shù)(對(duì)象)

其次是調(diào)用ODI所依賴的核心參數(shù)(對(duì)象),OdiStartScenRequest,最終調(diào)用ODI場(chǎng)景時(shí),將根據(jù)OdiStartScenRequest 的內(nèi)容來啟動(dòng)具體的同步場(chǎng)景:odiS.invokeStartScen(startScenRequest);。

三、設(shè)置OdiStartScenRequest所依賴的兩大屬性(對(duì)象)

1、ScenarioRequestType

scenaroRequest.setContext(“GLOBAL”);//設(shè)置上下文,默認(rèn)為GLOBAL

scenaroRequest.setSynchronous(false);//設(shè)置同步方式,即應(yīng)用程序調(diào)用時(shí)是否等待ODI場(chǎng)景執(zhí)行完成后才執(zhí)行下一步。ODI默認(rèn)為True,建議當(dāng)同步任務(wù)所要處理的數(shù)據(jù)量較大、時(shí)間較長時(shí),將該屬性設(shè)為false。

scenaroRequest.setLogLevel(5);//設(shè)置日志級(jí)別

scenaroRequest.setScenarioName(“PKG_SZGS_TO_SSBZ”);//設(shè)置要調(diào)用的ODI場(chǎng)景的名稱

scenaroRequest.setScenarioVersion(“001”);//設(shè)置要調(diào)用的ODI場(chǎng)景的版本號(hào)

假如需要為場(chǎng)景傳遞啟動(dòng)參數(shù),那么需要以下步驟:

//設(shè)置場(chǎng)景啟動(dòng)所需要的變量

VariableTypevt=new VariableType();? //VariableType是odiinvoke.odi.com.oracle.xmlns.OdiInvokeStub.VariableType類型,是用于向ODI場(chǎng)景傳遞參數(shù)信息的載體,必須要聲明

vt.setName(“PRO_SZGS.RW_ID”);設(shè)置參數(shù)(ODI變量)的名稱,名稱必須為變量的全路徑:項(xiàng)目名.變量名 的形式

vt.setValue(“260”);//設(shè)置要向ODI變量傳遞的內(nèi)容

scenaroRequest.addVariables(vt);//將變量添加到scenaroRequest中

2、OdiCredentialType

?????? //設(shè)置OdiCredentialType變量

OdiCredentialTypeodiCredentialType=new OdiCredentialType();//聲明OdiCredentialType

odiCredentialType.setWorkRepository(“WORKREP”);//設(shè)定當(dāng)前要操作的ODI工作資料配置庫名稱

odiCredentialType.setOdiUser(“SUPERVISOR”);//設(shè)定管理員帳號(hào)(與客戶端登錄ODI的帳號(hào)相同)

odiCredentialType.setOdiPassword(“sanyuan”);//設(shè)定管理員密碼

四、執(zhí)行

//為OdiStartScenRequest對(duì)象設(shè)置其兩個(gè)核心參數(shù)ScenarioRequestType及OdiCredentialType

startScenRequest.setRequest(scenaroRequest);

startScenRequest.setCredentials(odiCredentialType);

//通過OdiStartScenRequest對(duì)象啟動(dòng)ODI已經(jīng)發(fā)布到代理上的場(chǎng)景

odiS.invokeStartScen(startScenRequest);

3.???小結(jié)

通過WebService方式調(diào)用ODI中的集成場(chǎng)景還要很多其他的方法可以使用,建議參照ODI二次開發(fā)手冊(cè)詳細(xì)了解。WebService的方式為ODI集成任務(wù)整合到業(yè)務(wù)流程提供了必要的支撐。

上一篇:

下一篇:

相關(guān)新聞