WebLogic UDDI Client API实例进修(二)
当前位置:以往代写 > JAVA 教程 >WebLogic UDDI Client API实例进修(二)
2019-06-14

WebLogic UDDI Client API实例进修(二)

WebLogic UDDI Client API实例进修(二)

副标题#e#

宣布 Publish

与查询雷同,可以宣布到UDDI 注册中心的数据模子也有四个:贸易实体、贸易处事、绑定信息和tModel。对应Publish类中的四个save要领:

四个save要领用于宣布或修改UDDI的数据,四个delete要领用于删除数据。

getAuthToken则可以获取注册中心的登录信息,获得的AuthInfo需要在对UDDI的数据举办宣布、修改或删除时作为身份验证的参数提供。

WebLogic UDDI Client API实例学习(二)

登录注册中心

对UDDI注册中心的数据举办操纵时需要提供用户注册信息或(及)操纵员的信息。Publish的getAuthToken要领获得AuthToken,尔后再由它获得AuthInfo工具。AuthInfo在后头的操纵中是必须的参数之一。

下面是一段示例的登录代码:

GetAuthToken gat = new GetAuthToken();
gat.setUserID("yancheng");
gat.setCred("12345678");
AuthInfo aInfo = publisher.getAuthToken(gat).getAuthInfo();
log("AuthInfo is "+aInfo.getValue());

宣布贸易实体

通过Publish类的saveBusiness要领可以向注册中心宣布一个新的BusinessEntity或是修改原有的(需要知道它的BusinessKey)。

Publish的saveBusiness要领需要提供一个SaveBusiness工具作为参数。需要宣布的BusniessEntity插手这个工具中即可。有两个要领较量重要,一个是addUploadRegister要领,提供是谁宣布,另一个是担任自request包下的UpdateRequest类的setAuthInfo, 配置前面登录步调获得的注册信息AuthInfo工具。

BusinessEntity类曾经在查询操纵中呈现过,下边的图示只列出它的set要领(同样的在先容查询的时候我们只列出了它的get要领)。

WebLogic UDDI Client API实例学习(二)


#p#副标题#e#

可觉得它插手Name、Description、Contact、Operator、DiscoveryURL、Category等信息。以及它所包括的贸易处事BusinessService。

留意的是必需配置它的BusinessKey,可是因为是新宣布,所以可以配置为””。

下面用一段代码说明如何插手一个新的BusinessEntity工具:

void addBusiness(){
 try {
  file://登录
  … …
  file://建设接洽信息
  Contact contact = new Contact();
  contact.addDescription("yancheng contact");
  contact.addEmail("[email protected]");
  contact.addPhone("1012032");
  contact.setPersonName("yan cheng");
  Contacts contacts = new Contacts();
  contacts.addContact(contact);
  file://建设贸易实体
  BusinessEntity bEntity = new BusinessEntity();
  bEntity.setName(new Name("sharetop.com"));
  bEntity.addDescription("sharetop software studio");
  bEntity.setAuthorizedName("yancheng");
  bEntity.setOperator("yancheng");
  bEntity.setBusinessKey("");
  bEntity.setContacts(contacts);
  file://建设SaveBusiness作为参数
  SaveBusiness sb = new SaveBusiness();
  sb.setAuthInfo(aInfo);
  sb.addUploadRegister(new UploadRegister("yancheng"));
  sb.addBusinessEntity(bEntity);
  file://宣布
  publisher.saveBusiness(sb);
 }
 catch (Exception ex) {
  ex.printStackTrace();
 }
}

宣布tModel

tModel用于描写了WebService的技能类型信息。它自己并没有和某个BusinessEntity绑定在一起,所以可以直接宣布。

构建一个新的TModel工具,配置需要的参数,如Name、Description、Operator、OverviewDoc等。

同样也必需配置它的TModelKey,假如是宣布则为””。

WebLogic UDDI Client API实例学习(二)

插手TModel的代码示譬喻下:

void addTModel(){
  try {
   file://登录
   … …
   file://构建TModel工具
   TModel tModel = new TModel();
   tModel.setName(new Name("TestXType tModel"));
   tModel.addDescription("complex datatype tmodel");
   tModel.setTModelKey("");
   OverviewDoc oDoc = new OverviewDoc();
   oDoc.setOverviewURL("http://sharetop:7001/TestXType/TestXTypeEJB?WSDL");
   tModel.setOverviewDoc(oDoc);
   file://构建SaveTModel工具
   SaveTModel st = new SaveTModel();
   st.setAuthInfo(aInfo);
   st.addUploadRegister(new UploadRegister("yancheng"));
   st.addTModel(tModel);
   file://宣布
   publisher.saveTModel(st);
  }
  catch (Exception ex) {
   ex.printStackTrace();
  }
}

#p#副标题#e#

宣布贸易处事

#p#分页标题#e#

宣布贸易处事及其相关的绑定信息是宣布WebService最重要的一环。在已经乐成宣布BusinessEntity和tModel之后,需要把实现的Web Service宣布到Internet上。可以只宣布一个空的BusinessService而不带任何绑定模板,同时,也可以连同绑定模板一起宣布。

WebLogic UDDI Client API实例学习(二)

宣布BusinessService的要领与前面接头的其它宣布要领基内情同。

要留意的是在宣布一个BusinessService时,必需要为它指定一个BindingTemplates,假如临时不宣布BindingTemplate的话,也需要提供一个空的BindingTemplates作为参数。

示例代码如下:

void addService(){
 try {
  file://登录
  … …
  file://取已宣布的贸易实体信息
  GetRegisteredInfo gri = new GetRegisteredInfo();
  gri.setAuthInfo(aInfo);
  Vector vBusinessInfo =
   publisher.getRegisteredInfo(gri).getBusinessInfos().getBusinessInfoVector();
  BusinessInfo bInfo = (BusinessInfo)vBusinessInfo.elementAt(0);
  String bKey=bInfo.getBusinessKey();
 
  file://构建BusinessService
  BusinessService bService = new BusinessService();
  bService.setBusinessKey(bKey); file://它挂在哪个贸易实体下
  bService.setServiceKey("");
  bService.setName(new Name("TestXType"));
  bService.addDescription("Test Complex DataType");
  file://为BusinessService插手空的BindingTemplates
  BindingTemplates bTemplates = new BindingTemplates();
  bService.setBindingTemplates(bTemplates);
  file://构建SaveService
  SaveService ss = new SaveService();
  ss.setAuthInfo(aInfo);
  ss.addBusinessService(bService);
  file://宣布
  publisher.saveService(ss);
 }
 catch (Exception ex) {
  ex.printStackTrace();
 }
}

宣布绑定模板及tModel实例工具

可觉得一个存在的BusinessService加上新的绑定模板。差异的绑定模板代表了这个贸易处事的差异进口。宣布的要领与其它基内情同,不再赘述。

void addBinding(){
  try {
   file://登录
   … …
   file://取已存在的贸易实体及贸易处事信息(也可以按照Key直接定位)
   BusinessInfo bInfo =
    (BusinessInfo)publisher.getRegisteredInfo(gri).
     getBusinessInfos().getBusinessInfoVector().elementAt(0);
   String bKey=bInfo.getBusinessKey();
   ServiceInfo sInfo =
    (ServiceInfo)bInfo.getServiceInfos().getServiceInfoVector().elementAt(0);
   String sKey = sInfo.getServiceKey();
   file://取已存在的tModel信息(同样也可以按照Key直接定位)
   TModelInfo tInfo =
    (TModelInfo)publisher.getRegisteredInfo(gri).getTModelInfos()
     .getTModelInfoVector().elementAt(2);
   String tKey = tInfo.getTModelKey();
   file://建设InstanceDetails工具
   InstanceDetails iDetails = new InstanceDetails();
   iDetails.addDescription("Instance Details");
   OverviewDoc oDoc = new OverviewDoc();
   oDoc.setOverviewURL("http://sharetop:7001/TestXType/TestXTypeEJB?WSDL");
   iDetails.setOverviewDoc(oDoc);
   file://建设TModelInstanceInfo
   TModelInstanceInfo tmInstanceInfo = new TModelInstanceInfo();
   tmInstanceInfo.addDescription("tModel Instance Info");
   tmInstanceInfo.setTModelKey(tKey);
   tmInstanceInfo.setInstanceDetails(iDetails);
   file://建设TModelInstanceDetails
   TModelInstanceDetails tmInstanceDetails = new TModelInstanceDetails();
   tmInstanceDetails.addTModelInstanceInfo(tmInstanceInfo);
   file://建设BindingTemplate
   BindingTemplate bTemplate = new BindingTemplate();
   bTemplate.setBindingKey("");
   bTemplate.setServiceKey(sKey);
   bTemplate.setAccessPoint(new AccessPoint("http://www.superfeel.net","http"));
   bTemplate.addDescription("add new binding template 3");
   bTemplate.setTModelInstanceDetails(tmInstanceDetails);
   file://建设SaveBinding
   SaveBinding sb = new SaveBinding();
   sb.setAuthInfo(aInfo);
   sb.addBindingTemplate(bTemplate);
   file://宣布
   publisher.saveBinding(sb);
  }
  catch (Exception ex) {
   ex.printStackTrace();
  }
}

    关键字:

在线提交作业