📄 chapter53.htm
字号:
.g2 { PADDING-LEFT: 21px; PADDING-TOP: 5px}.g3 { FONT-WEIGHT: bold; COLOR: #ab6503}.g4 { COLOR: #ff0000}.img { BORDER-RIGHT: #800000 1px solid; BORDER-TOP: #800000 1px solid; BORDER-LEFT: #800000 1px solid; BORDER-BOTTOM: #800000 1px solid}.img1 { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid}.f14 { FONT-SIZE: 14px; LINE-HEIGHT: 26px}.f20 { FONT-WEIGHT: bold; FONT-SIZE: 20px}.top_red { COLOR: #d70709; TEXT-DECORATION: none}.center01 { COLOR: #000000; LINE-HEIGHT: 20px}.center01 TD { COLOR: #000000; LINE-HEIGHT: 20px}.center01 A:link { COLOR: #000000; TEXT-DECORATION: none}.center01 A:visited { COLOR: #000000; TEXT-DECORATION: none}.center01 A:hover { COLOR: #2b7128; TEXT-DECORATION: underline}.center02 { COLOR: #194e00; LINE-HEIGHT: 20px}.center02 TD { COLOR: #194e00; LINE-HEIGHT: 20px}.center02 A:link { COLOR: #194e00; TEXT-DECORATION: none}.center02 A:visited { COLOR: #194e00; TEXT-DECORATION: none}.center02 A:hover { COLOR: #194e00; TEXT-DECORATION: underline}--></style><TABLE width=760 border=0 align=center cellPadding=0 cellSpacing=0 bgcolor="#F3F3F3" valign="top"> <tr class="center01"> <td width="488" style="padding-left:10px;padding-top:10px"> <a href="index.php">连载</a> > <a href="slist.php?class1=6">程序设计</a> > <a href="slist.php?class2=7">Java</a> > <a href="serialize.php?id=387">Java网络编程专辑</a> </td> <td width="280" style="padding-left:10px;padding-top:10px"> <div align="center"> <font color=#0000FF><a href='chapter.php?id=387&volume=4&chapter=4'>上一页</a></font> <font color=#0000FF><a href="serialize.php?id=387">回书目</a></font> <font color=#0000FF><a href='chapter.php?id=387&volume=4&chapter=6'>下一页</a></font> </div> </td> </tr> <tr class="center01"> <td colspan="2" align="center" style="padding-left:10px;padding-top:10px"> </td> </tr> <TBODY> <TR> <TD colspan="2" align=middle> <BR> <div style="FONT-SIZE: 18pt; COLOR: #990000; FONT-FAMILY: 楷体_GB2312" align=center><B>相关API</b></div><br><div style="COLOR: #990000; font-family: ; font-size: 18px;宋体;" align=center>WebLogic UDDI Client API实例学习(一2)</div> <DIV style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 10.5pt; COLOR: black; LINE-HEIGHT: 180%" align=left> <br> <P><SPAN class=f14> <STRONG><FONT color=#f70968>BusinessService和BindingTemplate的查询</FONT></STRONG><BR><BR> 虽然在Inquiry类中定义了findService方法,但是一般情况下可以根据查询到的BusinessInfo对象来进一步查询此BusinessEntity下属的BusinessService。注意到在BusinessInfo类中有一个方法getServiceInfos,它可以帮助我们得到此商业实体所提供的商业服务。<BR><BR></P>
<TABLE width=100 align=center>
<TBODY>
<TR>
<TD><IMG src="/book/images/upload/1100142131-1.jpg" align=baseline border=0></TD></TR></TBODY></TABLE><BR> 从BusinessInfo对象可以获取此商业实体下所有的ServiceInfo对象的集合。ServiceInfo对象定义了商业服务的基本信息,比较重要的有Name和ServiceKey。<BR><BR> 类似地,用Inquiry类提供的getServiceDetail方法可以得到商业服务的详细信息,即BusinessService类。它包括商业服务的多种有用信息,如:Description,Category等。<BR><BR> 进一步,根据BusinessService类定义的getBindingTemplates方法,又可以取得此服务下的所有绑定模板信息。<BR><BR>
<TABLE width=100 align=center>
<TBODY>
<TR>
<TD><IMG src="/book/images/upload/1100142142-2.jpg" align=baseline border=0></TD></TR></TBODY></TABLE><BR> 在BindingTemplate对象中定义了绑定模板的一些重要属性,如:AccessPoint等。<BR><BR> 再进一步,可以从BindingTemplate中提供的方法getTModelInstanceDetails中获取tModel Instance的详细信息,即InstanceDetails对象。包括有OverviewDoc。<BR><BR>
<TABLE width=100 align=center>
<TBODY>
<TR>
<TD><IMG src="/book/images/upload/1100142147-3.jpg" align=baseline border=0></TD></TR></TBODY></TABLE><BR> 从OverviewDoc可以得到OverviewURL,这就是我们在发布WebService时的WSDL的URL地址。<BR><BR><BR> 下面,笔者也给出一段代码演示了这个查询过程:<BR><BR>
<TABLE width="100%" bgColor=#ffffff>
<TBODY>
<TR>
<TD>void echoBusiness2(String parm){<BR><BR> try {<BR><BR> file://查询BusinessInfo<BR><BR> FindBusiness fb = new FindBusiness();<BR><BR> fb.setName(new Name(parm));<BR><BR> Vector vBusinessInfo =finder.findBusiness(fb).getBusinessInfos().getBusinessInfoVector();<BR><BR> for(int i=0;i<VBUSINESSINFO.SIZE();I++){<BR> <BR> BusinessInfo bInfo = (BusinessInfo)vBusinessInfo.elementAt(i);<BR><BR> log(bInfo.getName().getValue()+" ["+bInfo.getBusinessKey()+"]");<BR><BR> file://查询ServiceInfo<BR><BR> Vector vServiceInfo = bInfo.getServiceInfos().getServiceInfoVector();<BR><BR> for(int j=0;j<VSERVICEINFO.SIZE();J++){<BR> <BR> ServiceInfo sInfo = (ServiceInfo)vServiceInfo.elementAt(j);<BR><BR> log(sInfo.getName().getValue()+"["+sInfo.getServiceKey()+"]");<BR><BR> file://查询BusinessService<BR><BR> GetServiceDetail gsd = new GetServiceDetail();<BR><BR> gsd.addServiceKey(sInfo.getServiceKey());<BR><BR> Vector vBusinessService = finder.getServiceDetail(gsd).getBusinessServiceVector();<BR><BR> for(int k=0;k<VBUSINESSSERVICE.SIZE();K++){<BR> <BR> BusinessService bService = (BusinessService)vBusinessService.elementAt(k);<BR><BR> file://查询BindingTemplate<BR><BR> Vector vBindingTemplate =<BR><BR> bService.getBindingTemplates().getBindingTemplateVector();<BR><BR> for(int p=0;p<VBINDINGTEMPLATE.SIZE();P++){<BR> <BR> BindingTemplate bTemplate = <BR><BR> (BindingTemplate)vBindingTemplate.elementAt(p);<BR><BR> log(bTemplate.getAccessPoint().getValue());<BR><BR> file://查询TModelInstanceInfo<BR><BR> Vector vTModelInstanceInfo = <BR><BR> bTemplate.getTModelInstanceDetails().getTModelInstanceInfoVector();<BR><BR> for(int q=0;q<VTMODELINSTANCEINFO.SIZE();Q++){<BR> <BR> TModelInstanceInfo tmInstanceInfo = <BR><BR> (TModelInstanceInfo)vTModelInstanceInfo.elementAt(q);<BR><BR> file://直接显示了InstanceDetails的OverviewDoc的信息<BR><BR> log(tmInstanceInfo.getInstanceDetails().getOverviewDoc().getOverviewURL().getValue());<BR><BR> }<BR><BR> }<BR><BR> }<BR><BR> }<BR><BR> }<BR><BR>}<BR><BR>catch (Exception ex) {<BR><BR>ex.printStackTrace();<BR><BR>}<BR><BR>}<BR></TD></TR></TBODY></TABLE><BR> 这段代码比较长,嵌套很多,但是理清了头绪相信读者还是能够看明白的。无非就是一层层查询:从BusinessInfo -> ServiceInfo -> BusinessService -> BindingTemplate -> TModelInstanceInfo -> InstanceDetail,最后显示它的OverviewDoc的URL值。<BR><BR> <FONT color=#ac000><B>查询TModel</B></FONT><BR><BR> TModel的查询有两条路,一条是上面的从BusinessInfo开始的层级查询,最终得到TModel的InstaceDetail对象。另一条路则也是从Inquiry开始的,用find方法查询全部的tModel数据模型。<BR><BR>
<TABLE width=100 align=center>
<TBODY>
<TR>
<TD><IMG src="/book/images/upload/1100142156-4.jpg" align=baseline border=0></TD></TR></TBODY></TABLE><BR> 先从Inquiry对象的findTModel方法查询全部合乎条件的tModel对象,同样要求有输入参数FindTModel对象定义查询条件。<BR><BR> 然后,同样用getTModelDetail方法取得tModel对象的详细信息,即TModel类。它包括了tModel的主要属性,如Category,Identifier,Operator,OverviewDoc等等。<BR><BR> 下面这段代码演示了这种查询过程:<BR><BR>
<TABLE width="100%" bgColor=#ffffff>
<TBODY>
<TR>
<TD>void echoTModel(String param){<BR><BR> try {<BR><BR> FindTModel ftm = new FindTModel();<BR><BR> ftm.setName(new Name(param));<BR><BR> Vector vTModelInfo = finder.findTModel(ftm).getTModelInfos().getTModelInfoVector();<BR><BR> for(int j=0;j<VTMODELINFO.SIZE();J++){<BR> <BR> TModelInfo tInfo = (TModelInfo)vTModelInfo.elementAt(j);<BR><BR> log(tInfo.getName().getValue()+"["+tInfo.getTModelKey()+"]");<BR><BR> GetTModelDetail gtd = new GetTModelDetail();<BR><BR> gtd.addTModelKey(tInfo.getTModelKey());<BR><BR> Vector vTModel = finder.getTModelDetail(gtd).getTModelVector();<BR><BR> for(int i=0;i<VTMODEL.SIZE();I++){<BR> <BR> TModel tModel = (TModel)vTModel.elementAt(i);<BR><BR> log(tModel.getName().getValue()+" "+tModel.getAuthorizedName());<BR><BR> }<BR><BR> }<BR><BR> }<BR><BR> catch (Exception ex) {<BR><BR> ex.printStackTrace();<BR><BR> }<BR><BR>}<BR></TD></TR></TBODY></TABLE></SPAN><br><br> </DIV> </TD> </TR> <TR> <TD class=center01> <div align="center">来源:天极网 作者:<div> </TD> <TD width="280" class=center01> <div align="center"> <font color=#0000FF><a href='chapter.php?id=387&volume=4&chapter=4'>上一页</a></font> <font color=#0000FF><a href="serialize.php?id=387">回书目</a></font> <font color=#0000FF><a href='chapter.php?id=387&volume=4&chapter=6'>下一页</a></font> </div> </TD> </TR> </TBODY></TABLE><table><tr><td width="760"> <table width="760" height="10" border="0" cellpadding="0" cellspacing="0"> <tr> <td></td> </tr> </table> <!------------ 评论 ----------------> <table width="760" border="0" cellpadding="0" cellspacing="0"> <tr> <td><iframe width="100%" id=vs frameborder=0 scrolling=no src="comment_list1.php?id=387"></iframe> </td> </tr> </table><br><script language=javascript>function CheckNetwordForm(theForm){ if("" == theForm.content.value) { alert("写两句吧~~"); theForm.content.focus(); return false; } var index; for(index=0;index<theForm.content.value.length;index++) { if(" " != theForm.content.value.charAt(index)) break; } if(index == theForm.content.value.length) { alert("写两句吧~~"); theForm.content.focus(); return false; } if (theForm.content.value.length>100){ alert("评论字数不能超过100哦"); theForm.content.focus(); return false; } return true;}</script> <!------------------ 评论 ---------------> <form name=netword method=post action="insertnetword.php" onsubmit="javascript: return CheckNetwordForm(this);"> <table width="760" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="25" class="text6"> 给此书打分:<a name="1"></a> <select name="score"> <option value=5 selected>非常好</option> <option value=4>还凑合</option> <option value=3>一般吧</option> <option value=2>不太行</option> <option value=1>太差了</option> </select> 用户名: <input name="id" value=387 type="hidden" id="id"> <input name="backurl" value=/book/chapter.php?id=387&volume=4&chapter=5 type="hidden"> <input name="username" type="text" id="username" size="20" maxlength="20"> <font color="#666666">*评论字数请控制在一百字以内</font> </td> </tr> </table> <br> <textarea name="content" cols="80" rows="4" wrap="OFF" id="description"></textarea> <input type="submit" name="Submit" value="提交"> </form> </td> </tr></table></td></tr></table> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TBODY> <TR> <TD width="1003" height=9 background=images/t_bj01.gif><IMG height=1 src="images/ccc.gif" width=1></TD> </TR> </TBODY></TABLE><TABLE cellSpacing=0 cellPadding=0 width=760 bgColor=#ffffff border=0> <TBODY> <TR> <TD><HR width=760 noShade SIZE=1> </TD> </TR> <TR> <TD align=middle><A class=black href="http://www.chinaren.com/" target=_blank>ChinaRen</A> - <A class=black href="http://big5.www.sohu.com/" target=_blank>繁体版</A> - <A class=black href="http://hr.sohu.com/hrm.html" target=_blank>搜狐招聘</A> - <A class=black href="http://add.sohu.com/" target=_blank>网站登录</A> - <A class=black href="http://help.sohu.com/" target=_blank>帮助中心</A> - <A class=black href="http://book.news.sohu.com/onClick=this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.sohu.com');return" target=_blank false;>设置首页</A> - <A class=black href="http://adinfo.sohu.com/" target=_blank>广告服务</A> - <A class=black href="http://www.sohu.com/about/lianxi.htm" target=_blank>联系方式</A> - <A class=black href="http://www.sohu.com/about/privacy.html" target=_blank>保护隐私权</A> - <A class=black href="http://www.sohu.com/about/" target=_blank>About SOHU</A> - <A class=black href="http://www.sohu.com/about/" target=_blank>公司介绍</A><BR> <SPAN class=eng>Copyright © 2004 Sohu.com Inc. All rights reserved. 搜狐公司 版权所有</SPAN> </TD> </TR> </TBODY></TABLE></center></body></html><script language="JavaScript" src="http://nielsen.js.sohu.com/nnselect.js"></script><noscript><img src='http://ping.nnselect.com/ping.gif?c=119' height='1' width='1'></noscript>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -