| | WebLogic UDDI Client API 实例学习(二) |
| | | | | | [文章信息] | | | 作者: | 颜承 | | 时间: | 2002-12-31 | | 出处: | yesky | | 责任编辑: | 方舟 | |
| [文章导读] | | | 与查询类似,可以发布到UDDI 注册中心的数据模型也有四个:商业实体、商业服务、绑定信息和tModel | |
| |
|
| | | |
|
|
|
|
|
发布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();
}
}
|
|
|
|
|
|
|
|
|