您的位置:软件 > 开发者网络 > 开发工具 > Java > 正文
WebLogic UDDI Client API 实例学习(二)
[文章信息]
作者:颜承
时间:2002-12-31
出处:yesky
责任编辑:方舟
[文章导读]
与查询类似,可以发布到UDDI 注册中心的数据模型也有四个:商业实体、商业服务、绑定信息和tModel
advertisement
热点推荐
· QQ/UC网络硬盘大比拼
· 11.5精选 体验“百兆”浏览器
· JSP入门初级教程之JSP指令
· Win XP中网络地址转换(NAT)概述
· Win XP系统的九寨沟之“旅”
[正文]

上一页  1 2  

  发布tModel

  tModel用于描述了WebService的技术规范信息。它本身并没有和某个BusinessEntity绑定在一起,所以可以直接发布。

  构建一个新的TModel对象,设置需要的参数,如Name、Description、Operator、OverviewDoc等。

  同样也必须设置它的TModelKey,如果是发布则为””。


  加入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();

 }

}


  发布商业服务

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


  发布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();

 }

}


上一页  1 2  

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 三国志10 攻略秘技专题
  • 11.5精选 体验“百兆”浏览器
  • 《细胞分裂3》高精细游戏画面
  • 穷学生的福音:打印机创造财富
  • 生化4重婚带来的一场危机
  • 测试要求及平台设备简介
  • 玩转MOTO时尚手机 让JAVA动起来
  • 《开天》活动获奖者与GM起纠纷
  • Advertisement