发布 Publish
与查询类似,可以发布到UDDI 注册中心的数据模型也有四个:商业实体、商业服务、绑定信息和tModel。对应Publish类中的四个save方法:
四个save方法用于发布或修改UDDI的数据,四个delete方法用于删除数据。
getAuthToken则可以获取注册中心的登录信息,得到的AuthInfo需要在对UDDI的数据进行发布、修改或删除时作为身份验证的参数提供。
登录注册中心
对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方法)。
可以为它加入Name、Description、Contact、Operator、DiscoveryURL、Category等信息。以及它所包含的商业服务BusinessService。
注意的是必须设置它的BusinessKey,但是因为是新发布,所以可以设置为””。
下面用一段代码说明如何加入一个新的BusinessEntity对象:
void addBusiness(){ try { file://登录 … … file://创建联系信息 Contact contact = new Contact(); contact.addDescription("yancheng contact"); contact.addEmail("webmaster@sharetop.com"); 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(); } } |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/