`
endual
  • 浏览: 3560902 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

juddiv3 客户端发布代码(转)

 
阅读更多

package publish;

import java.util.ArrayList;
import java.util.Vector;

import org.uddi4j.client.UDDIProxy;
import org.uddi4j.datatype.Name;
import org.uddi4j.datatype.binding.AccessPoint;
import org.uddi4j.datatype.binding.BindingTemplate;
import org.uddi4j.datatype.service.BusinessService;
import org.uddi4j.response.BusinessInfo;
import org.uddi4j.response.BusinessList;
import org.uddi4j.response.ServiceDetail;
import org.uddi4j.response.ServiceInfo;
import org.uddi4j.response.ServiceList;
import org.uddi4j.response.TModelInfo;
import org.uddi4j.response.TModelList;
import org.uddi4j.transport.TransportException;
import org.uddi4j.util.CategoryBag;
import org.uddi4j.util.FindQualifier;
import org.uddi4j.util.FindQualifiers;
import org.uddi4j.util.KeyedReference;
import org.uddi4j.util.TModelBag;
import org.uddi4j.util.TModelKey;

public class find_weather_information {
public static void main(String[] args) throws TransportException, Exception{
  find_weather_information find = new find_weather_information();
  ArrayList rs= new ArrayList();
  rs=find.find_URL();
  for(int i=0;i <rs.size();i++){
  System.out.println(rs.get(i));
  }
 
 


}
public ArrayList find_URL() throws Exception, TransportException
{
String inquiryURL = "http://localhost:8080/juddi/inquiry";
    String publishURL= "http://localhost:8080/juddi/publish";
    String userid="juddi";
    String password="juddi";
// 创建一个 UDDIProxy object.
UDDIProxy proxy = new UDDIProxy();
        // 设置环境
proxy.setInquiryURL(inquiryURL);
proxy.setPublishURL(publishURL);



//tModel的查询
        //根据TModel的categoryBag查询,目标是categoryBag的name为uddi-org:types,值为wsdlSpec的tModel
CategoryBag categoryBag = new CategoryBag();
categoryBag.add(new KeyedReference("uddi-org:types", "wsdlSpec"));
TModelList tModelList=proxy.find_tModel(null,categoryBag, null, null, 0);
//讲找到的tModelkey放入ArrayList中
String tModelKey = null;
ArrayList tModelKeyList=new ArrayList();
Vector tModelInfoVector =tModelList.getTModelInfos().getTModelInfoVector();
for(int i=0;i <tModelInfoVector.size();i++)
{
    tModelKey = ((TModelInfo)tModelInfoVector.get(i)).getTModelKey();
    tModelInfoVector.add(tModelKey);
}
//创建TModelBag,存放上面找到的符合要求的TModel,便于下面的查询使用
TModelBag tModelBag = new TModelBag();
for(int i=0;i <tModelKeyList.size();i++)
tModelBag.add((TModelKey) tModelKeyList.get(i));



//Entity的查询
//填名字
Vector entity_names = new Vector();
entity_names.add(new Name("%Airlines_Company%"));////记得加“%”
    //设置FindQualifiers为“区分大小写模式”
    FindQualifiers findQualifiers = new FindQualifiers();
Vector qualifier = new Vector();
qualifier.add(new FindQualifier("caseSensitiveMatch"));//区分大小写匹配模式
findQualifiers.setFindQualifierVector(qualifier);
//查找
BusinessList businessList = proxy.find_business(entity_names, null, null, null,tModelBag,findQualifiers,0);


//对每个Entity查询service
String  businessKey= null;
String  serviceKey= null;
ServiceDetail serviceDetail = null;
BindingTemplate bindingTemplate = null;
AccessPoint accessPoint = null;
ArrayList URLlist=new ArrayList();
Vector businessInfoVector  = businessList.getBusinessInfos().getBusinessInfoVector();
for( int i = 0; i < businessInfoVector.size(); i++ )
{
//Service查询
//获得BusinessKey
BusinessInfo businessInfo = (BusinessInfo)businessInfoVector.elementAt(i);
businessKey=businessInfo.getBusinessKey();
//填名字
Vector service_names = new Vector();
service_names.add(new Name("%inquiry_service%"));
//设置FindQualifiers为“区分大小写模式”,直接用上面的就好
//查询service
ServiceList serviceList = proxy.find_service(businessKey,service_names,
null,tModelBag,findQualifiers,0);

//对每个service获得URL
Vector serviceInfoVector  = serviceList.getServiceInfos().getServiceInfoVector();
for( int j = 0; j < serviceInfoVector.size(); j++ )

//获得serviceKey
ServiceInfo serviceInfo = (ServiceInfo)serviceInfoVector.elementAt(j);
serviceKey=serviceInfo.getServiceKey();
//使用serviceDetail对象,找到其中的BindingTemplate,再从BindingTemplate中找到AccessPoint
serviceDetail = proxy.get_serviceDetail(serviceKey);
Vector businessServiceVector = serviceDetail.getBusinessServiceVector();
BusinessService businessService =(BusinessService) businessServiceVector.get(0);
Vector bindingTemplateVector=businessService.getBindingTemplates().getBindingTemplateVector();
bindingTemplate = (BindingTemplate)bindingTemplateVector.elementAt(0);
accessPoint = bindingTemplate.getAccessPoint();
URLlist.add(accessPoint.getText());
}// 里面的for
}//外面的for


return URLlist;
}
}

分享到:
评论

相关推荐

    JUDDIV3注册,查询,发布服务

    在本场景中,我们将讨论如何使用**soapUI**工具来对JUDDIV3执行关键操作,如**注册**、**查询**和**发布**服务。 1. **注册服务**: 在JUDDI中注册服务是将Web服务信息存储到JUDDI服务器的过程。首先,你需要创建...

    juddi-dist-3.0.0.rc1.zip

    3. **服务管理**:包括服务的更新、删除、订阅等操作,确保服务信息的准确性和时效性。 4. **安全控制**:支持基于角色的访问控制,确保服务注册和发现的安全性。 5. **互操作性**:遵循WS-Discovery标准,与其他...

    连接uddi所需要的jar包

    对juddiv3进行操作(查询和发布)所需要的类 包含axis.jar、commons-beanutils-1.7.0.jar、commons-beanutils-core-1.7.0.jar、commons-collections.jar、commons-configuration-1.5.jar、commons-digester-1.8.jar、...

    juddi v3 用户指南

    文档详细介绍了如何针对每种数据库进行配置,并提供了在`juddiv3.properties`文件中覆盖默认持久化属性的方法。 ### 五、根种子数据 种子数据是指初始化时预加载的数据,juddi v3提供了种子数据文件,用于填充必要...

    juddiv3.3.4-configuration:服务计算-juddi实验

    服务计算juddi实验一,环境jdk = 1.8(1.6+),maven = 3.0.4,juddi = 3.3.4二,部署进入下载juddi-distro-3.3.4.zip(或tar.gz) ,解压到本地使用内置tomcat juddi-tomcat-3.3.4 cd your / path / juddi-distro-...

    juddi-portal-bundle-3.1.0.zip

    2. **RESTful API**:除了传统的SOAP接口,Juddi还提供了RESTful API,使得非Java环境的客户端也能方便地访问UDDI服务。 3. **插件架构**:Juddi的插件系统允许开发者扩展其功能,例如添加新的数据存储适配器或安全...

Global site tag (gtag.js) - Google Analytics