首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

WebLogic UDDI Client API 實戰(二):發布服務完整指南

     編輯:Java 相關知識

發布流程總覽

UDDI 註冊中心支援四大核心數據模型的發布與修改:商業實體、商業服務、綁定信息、tModel。WebLogic UDDI Client API 的 Publish 類提供對應的 saveXxx 與 deleteXxx 方法。所有寫操作均需先通過 getAuthToken 獲取 AuthInfo 作為身份憑證。

身份驗證:獲取 AuthToken

GetAuthToken gat = new GetAuthToken();
gat.setUserID("yancheng");
gat.setCred("12345678");
AuthInfo authInfo = publisher.getAuthToken(gat).getAuthInfo();
System.out.println("AuthInfo: " + authInfo.getValue());

AuthInfo 後續作為所有發布/修改/刪除操作的必填參數。

發布商業實體

使用 SaveBusiness 承載 BusinessEntity,關鍵步驟:

  • 設置 BusinessKey="" 表示新增
  • 填充 Name、Description、Contacts、Categories 等屬性
  • 調用 publisher.saveBusiness(sb)
BusinessEntity be = new BusinessEntity();
be.setName(new Name("sharetop.com"));
be.addDescription("sharetop software studio");
be.setAuthorizedName("yancheng");
be.setOperator("yancheng");
be.setBusinessKey("");

Contact c = new Contact();
c.setPersonName("yan cheng");
c.addEmail("webmaster@sharetop.com");
c.addPhone("1012032");
Contacts contacts = new Contacts();
contacts.addContact(c);
be.setContacts(contacts);

SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfo);
sb.addUploadRegister(new UploadRegister("yancheng"));
sb.addBusinessEntity(be);
publisher.saveBusiness(sb);

發布 tModel

tModel 描述技術規範,獨立於 BusinessEntity,同樣需設置 TModelKey="":

TModel tm = new TModel();
tm.setName(new Name("TestXType tModel"));
tm.addDescription("complex datatype tmodel");
tm.setTModelKey("");

OverviewDoc od = new OverviewDoc();
od.setOverviewURL("https://sharetop:7001/TestXType/TestXTypeEJB?WSDL");
tm.setOverviewDoc(od);

SaveTModel st = new SaveTModel();
st.setAuthInfo(authInfo);
st.addUploadRegister(new UploadRegister("yancheng"));
st.addTModel(tm);
publisher.saveTModel(st);

發布商業服務

服務需掛載於現有 BusinessEntity 下,必須提供 BindingTemplates(可為空):

// 先查詢已發布的 BusinessKey
GetRegisteredInfo gri = new GetRegisteredInfo();
gri.setAuthInfo(authInfo);
String bKey = publisher.getRegisteredInfo(gri)
    .getBusinessInfos().getBusinessInfoVector().firstElement()
    .getBusinessKey();

BusinessService bs = new BusinessService();
bs.setBusinessKey(bKey);
bs.setServiceKey("");
bs.setName(new Name("TestXType"));
bs.addDescription("Test Complex DataType");
bs.setBindingTemplates(new BindingTemplates()); // 空綁定模板

SaveService ss = new SaveService();
ss.setAuthInfo(authInfo);
ss.addBusinessService(bs);
publisher.saveService(ss);

發布綁定模板與 tModel 實例

為現有服務添加入口點,關聯 tModel 技術規範:

BindingTemplate bt = new BindingTemplate();
bt.setBindingKey("");
bt.setServiceKey(serviceKey);
bt.setAccessPoint(new AccessPoint("https://www.superfeel.net", "http"));
bt.addDescription("add new binding template 3");

TModelInstanceInfo tmInfo = new TModelInstanceInfo();
tmInfo.setTModelKey(tModelKey);
InstanceDetails id = new InstanceDetails();
id.setOverviewDoc(new OverviewDoc("https://sharetop:7001/TestXType/TestXTypeEJB?WSDL"));
tmInfo.setInstanceDetails(id);

TModelInstanceDetails tmDetails = new TModelInstanceDetails();
tmDetails.addTModelInstanceInfo(tmInfo);
bt.setTModelInstanceDetails(tmDetails);

SaveBinding sb = new SaveBinding();
sb.setAuthInfo(authInfo);
sb.addBindingTemplate(bt);
publisher.saveBinding(sb);

關鍵要點回顧

  1. 所有寫操作必須攜帶 AuthInfo
  2. 新增實體時 Key 字段傳空字串
  3. 層級關係:BusinessEntity → BusinessService → BindingTemplate → tModelInstanceInfo
  4. tModel 可獨立發布,再由服務引用

掌握此套流程,即可完整掌控 UDDI 註冊中心的服務發布生命週期。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved