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

juddiv3 tmodel的代码

 
阅读更多
环境:juddiv3+tomcat6.0+MySQL5.1+MyEclipse7.5
WSDL在UDDI中的注册:
    我们有两种方法和UDDI进行通信:
    一、用soapui工具直接编写SOAP消息和UDDI进行通信(它是Eclipse的一个插件);
    二、通过编程进行通信。(UDDI4J是一个UDDI编程接口,但是只支持UDDIv2,对v3不支持。所以只能自己编写。)
    下面是自己编写的把一个WSDL文件发布到UDDI注册中心的一段代码:
在该项目下需要加入juddiv3的lib下的jar包(需要在该项目下建一个/META-INF/uddi.xml)。

import junit.framework.Assert;
import org.junit.Test;
import org.apache.juddi.ClassUtil;
import org.apache.juddi.v3.client.config.UDDIClientContainer;
import org.apache.juddi.v3.client.transport.Transport;
import org.uddi.v3_service.UDDISecurityPortType;
import org.uddi.api_v3.GetAuthToken;
import org.uddi.api_v3.AuthToken;
import org.uddi.v3_service.UDDIPublicationPortType;
import org.uddi.api_v3.SaveBusiness;
import org.uddi.api_v3.BusinessEntity;
import org.uddi.api_v3.DiscoveryURLs;
import org.uddi.api_v3.DiscoveryURL;
import org.uddi.api_v3.Name;
import org.uddi.api_v3.SaveTModel;
import org.uddi.api_v3.TModel;
import org.uddi.api_v3.TModelDetail;
import org.uddi.api_v3.Description;
import org.uddi.api_v3.OverviewDoc;
import org.uddi.api_v3.OverviewURL;
import org.uddi.api_v3.TModelInstanceInfo;
import org.uddi.api_v3.TModelInstanceDetails;
import org.uddi.api_v3.BusinessService;
import org.uddi.api_v3.BusinessServices;
import org.uddi.api_v3.BindingTemplate;
import org.uddi.api_v3.BindingTemplates;
import org.uddi.api_v3.AccessPoint;
public class test3 {
     
 @Test
 public void testAuthToken()
 {
  try
  {
   String clazz = UDDIClientContainer.getDefaultTransportClass();
   Class<?>transportClass=ClassUtil.forName(clazz, Transport.class);
      if(transportClass!=null)
      {
       //获得authtoken
       Transport transport=(Transport)transportClass.newInstance();
       UDDISecurityPortType securityService=transport.getUDDISecurityService();
       GetAuthToken getauthToken=new GetAuthToken();
       getauthToken.setUserID("root");
       getauthToken.setCred("root");
       AuthToken authtoken=securityService.getAuthToken(getauthToken);
       String authinfo=authtoken.getAuthInfo();
       System.out.println(authinfo);
       UDDIPublicationPortType publication = transport.getUDDIPublishService();
       SaveBusiness sb = new SaveBusiness();
        
          //添加BusinessEntity
          BusinessEntity be=new BusinessEntity();
          DiscoveryURLs urls=new DiscoveryURLs();
          DiscoveryURL url=new DiscoveryURL();
          url.setValue("http://www.xiaozhan.com ");
          urls.getDiscoveryURL().add(url);
          be.setDiscoveryURLs(urls);
          Name name=new Name();
          name.setValue("TicketBooking");
          be.getName().add(name);
          
          //添加tModel
          SaveTModel ST=new SaveTModel();
          ST.setAuthInfo(authinfo);
          TModel tm=new TModel();
          Name n=new Name();
          n.setValue("http://www.tour.com ");
          tm.setName(n);
          Description des=new Description();
          des.setValue("Ticket");
          tm.getDescription().add(des);
          OverviewDoc od=new OverviewDoc();
          OverviewURL ou=new OverviewURL();
          ou.setValue("http://localhost:8080/axis2/services/Ticket?wsdl ");
          od.setOverviewURL(ou);
          tm.getOverviewDoc().add(od);
          ST.getTModel().add(tm);
          TModelDetail Tt=publication.saveTModel(ST);

          
          //添加BusinessService;
          BusinessServices bss=new BusinessServices();
          BusinessService bs=new BusinessService();
          Name na=new Name();
          na.setValue("Ticket");
          bs.getName().add(na);
          BindingTemplate bt=new BindingTemplate();
          BindingTemplates bts=new BindingTemplates();
          AccessPoint  ap=new AccessPoint();
          ap.setUseType("http");
          ap.setValue("http://localhost:8080/axis2/services/Ticket.TicketHttpSoap11Endpoint/ ");
          bt.setAccessPoint(ap);
          TModelInstanceDetails TD=new TModelInstanceDetails();
          TModelInstanceInfo TI=new TModelInstanceInfo();
          TI.setTModelKey(Tt.getTModel().get(0).getTModelKey());      
          TD.getTModelInstanceInfo().add(TI);
          bt.setTModelInstanceDetails(TD);
          bts.getBindingTemplate().add(bt);
          bs.setBindingTemplates(bts);
          bss.getBusinessService().add(bs);
          be.setBusinessServices(bss);
          sb.setAuthInfo(authinfo);          
          sb.getBusinessEntity().add(be);
          publication.saveBusiness(sb);
      }
      else
      {
       Assert.fail();
      }
  }
  catch(Exception e)
  {
   e.printStackTrace();
   Assert.fail("Could not obtain authInfo token.");
  }
 }
 
}
分享到:
评论
2 楼 endual 2012-07-18  
hhc8698 写道
你好,我最近也做这个,网上资料很少,你可以把相关的代码给我或者给个联系方式,我有几个问题想请教你,谢谢


抱歉,好久没搞着东西了。
1 楼 hhc8698 2012-07-18  
你好,我最近也做这个,网上资料很少,你可以把相关的代码给我或者给个联系方式,我有几个问题想请教你,谢谢

相关推荐

    JUDDIV3注册,查询,发布服务

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

    Terrasolid相关软件(TScan/TModel/TPhoto/TMatch)授权文件License

    Terrasolid是一款强大的三维激光扫描数据处理软件套件,它包括了TScan、TModel、TPhoto和TMatch等多个模块,分别针对不同的地理空间数据处理需求。这些软件在地信行业,尤其是LiDAR(Light Detection and Ranging)...

    TerraSolid TModel模块用户手册

    ### TerraSolid TModel模块用户手册知识点总结 #### TerraSolid TModel 模块概述 - **TerraSolid**:是一款先进的地理信息系统(GIS)与激光雷达数据处理软件套件,广泛应用于地形建模、土地管理、城市规划等领域。...

    在MVC3 中给HtmlHelper 添加扩展(Extension)来消除魔鬼代码.

    ### 在MVC3中给HtmlHelper添加扩展(Extension)来消除魔鬼代码 #### 背景与需求 在ASP.NET MVC3中进行Web应用开发时,开发者常常会遇到需要在JavaScript代码中引用HTML元素的情况。这通常涉及到通过元素的名称或ID...

    Tmodel帮助文档

    根据给定的文件信息,以下是从“Tmodel帮助文档”中提炼出的关于激光点云LiDAR(Light Detection and Ranging)与TerraModeler软件应用的关键知识点: ### TerraModeler - 激光点云处理软件 #### 1. TerraModeler ...

    D制造者代码生成器V2.0免费绿色版

    D制造者代码生成器是一款免费的根据SQL数据库基础上而产生的Delphi代码生成工具,支持批量生成,可以半自动操作生成,可以节省DELPHI...每一个实体的文件名为DZModel 数据表名,每一个实体的类名为TModel 数据表名。

    后端改造说明文档1

    工具允许在WCF服务端进行TModel和DbModel之间的转换,减少了手动编写转换代码的工作量。 4. **传输类(TModel)说明**: - TModel保持与原接口的兼容性,例如即使DepPos和DevInfo在数据库中合并,但在TModel中仍为两...

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

    通过juddi用户界面点击jUDDI用户界面,进入用户界面点击右上角登录创建tModel分区(密钥生成器) TModel密钥生成器是tModel的一种特殊类型,可以通过它使用所需的任意tModel定义新的tModel。例如,如果您希望将tM

    TerraSolid V13

    TScan、TModel、TMatch、TPhoto、Tsurvy 5个模块,注册机CSDN上也有; 挣个辛苦分。 如果不满足你的要求,可以自己百度 TerraSolid download,在官网上,输入自己的microstation 版本、选择TerraSolid版本,输入名字...

    了解_Web_服务规范_第_3_部分:统一描述发现和集成 (UDDI)源码

    UDDI使用TModel、BusinessEntity、BusinessService、BindingTemplate等XML元素来表示这些实体。 **2. UDDI操作** UDDI提供了多种操作,如: - **创建新服务(CreateNewService.java)**:此操作允许服务提供商注册...

    jQueryWidgetFactory1.8.21开发指南.doc

    #### 示例代码 假设我们需要创建一个简单的下拉列表控件: ```javascript $.widget("ui.dropdown", $.ui.widget, { options: { items: ["Item 1", "Item 2", "Item 3"], selected: 0 }, _create: function()...

    uddi结构类型.rar

    **3. taxonomy** Taxonomy在uddi中扮演着分类和组织服务的角色。它是一组预定义的概念,允许服务提供商为他们的服务分配类别标签。这些标签有助于服务消费者通过关键词搜索找到相关的服务。uddi的taxonomy可以是...

    MVC3处理反复提交,HtmlHelper用法大全,拓展方法

    在ASP.NET MVC3框架中,开发人员经常遇到的一个问题是用户反复提交表单,这可能导致数据库中的数据不一致或冲突。为了防止这种情况,我们需要实施一种机制来处理反复提交的问题。此外,`HtmlHelper`是ASP.NET MVC...

    mvc3 checkboxlistfor

    3. **示例代码:** 假设我们有一个`ViewModel`,其中包含一个`List&lt;string&gt;`属性`SelectedColors`,我们可以在视图中这样使用`CheckBoxListFor`: ```csharp @model ViewModel @Html.CheckBoxListFor(model =&gt; ...

    ASP.NET MVC框架开发系列课程(20):HTML Helper的使用与扩展

    - 使用`HtmlHelper&lt;TModel&gt;.Extension`类,可以创建类型安全的助手方法,提供更好的IntelliSense支持。 - 自定义HTML Helper的一个例子可能是创建一个用于生成复杂表单元素,如带有验证和默认值的日期选择器。 4....

    uddi_v2 API官方文档——中文

    - **搜索机制**:支持基于关键字、业务分类、TModel(技术模型)等进行搜索。 - **查询语言**:使用特定的查询语言来构造复杂的查询条件,以满足不同的搜索需求。 #### 服务交互 - **服务详情**:通过调用 API ...

    terrasoild四模块说明书

    3. TModel: TModel模块专注于地质模型的可视化和编辑。用户可以在这个模块中查看、交互和修改已创建的地质模型,包括颜色编码、透明度调整、切片显示等。TModel还提供了强大的剖面绘制和三维视图功能,帮助用户从...

    在UDDI注册中心中使用BPEL4WS

    #### 3. tModel定义 ##### 3.1 BPEL实体类型tModel tModel是UDDI中的术语模型,用于描述服务的类型。对于BPEL4WS流程,我们需要定义一种特殊的tModel来描述这些流程。 **3.1.1 设计目标** 设计用于描述BPEL4WS...

    nengo, 用于创建和模拟大规模脑模型的python 库.zip

    nengo, 用于创建和模拟大规模脑模型的python 库 Nengo: python 中的大规模脑建模 安装Nengo依赖于 tmodel,我们建议你在安装Nengo之前安装,。 如果你不确定如何执行这里操作,我们建议使用 Anaconda 。要安装 Nengo...

Global site tag (gtag.js) - Google Analytics