📅  最后修改于: 2023-12-03 15:39:24.426000             🧑  作者: Mango
UDDI(Universal Description, Discovery, and Integration)是一种用于Web服务的标准,由IBM、微软和SAP等公司在2000年联合推出。它提供了一个基于XML的、分布式的服务注册与查找机制,可以帮助用户在不同的组织和系统之间寻找并使用所需要的Web服务。
UDDI的基本结构由三个部分组成:
发布者:用于发布Web服务信息的组织或个人,如企业、开发者等。
UDDI注册服务器:存储Web服务信息的服务器,为Web服务提供查找服务的中介。
查找者:根据自己的需求在UDDI注册服务器上查找对应的Web服务信息,并与之进行交互。
WSDL(Web Services Description Language)是一种用于描述Web服务的语言,它定义了Web服务的接口、参数、返回值等信息。带有WSDL的UDDI是在原有的UDDI基础上增加了WSDL的支持,可以让用户更方便地了解Web服务的详细信息,以便更好地使用和集成Web服务。
在带有WSDL的UDDI中,发布者可以在注册Web服务时,同时提供与之相关的WSDL文件,以便让查找者可以更加清晰地了解Web服务的功能、参数、返回值等信息。同时,在查找Web服务时,查找者也可以通过WSDL文件来筛选和过滤符合自己需求的Web服务,以便定位最适合的Web服务。
实现带有WSDL的UDDI,需要分为两个部分:
Web服务的发布者需要将Web服务的信息和WSDL文件发布到UDDI注册服务器上。在实际操作中,可以使用类似于Apache JUDDI这样的开源UDDI实现来快速实现Web服务的注册和发布,具体步骤如下:
1.1 安装JUDDI
在官网https://juddi.apache.org/download.html上下载最新的Apache JUDDI包,并解压到本地。
1.2 启动JUDDI
在命令行下进入到JUDDI包所在的目录,执行以下命令启动JUDDI注册服务器:
./bin/juddi-tomcat-startup.sh
1.3 注册Web服务
在浏览器中访问以下地址,进入到UDDI发布者管理页面:
http://localhost:8080/juddi/console
在页面中可以输入Web服务的基本信息和WSDL文件信息,然后点击“Save”按钮进行发布。
Web服务的查找者需要使用UDDI注册服务器提供的查找服务来定位符合自己需求的Web服务。在实际操作中,可以使用类似于Apache JUDDI提供的Java API来访问UDDI注册服务器,具体步骤如下:
2.1 添加JUDDI的Maven依赖
在项目的pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.apache.juddi</groupId>
<artifactId>juddi-client</artifactId>
<version>3.2.0</version>
</dependency>
2.2 编写Java代码
使用JUDDI的Java API访问UDDI注册服务器,并查找符合自己需求的Web服务,具体代码如下:
// 创建UDDI客户端连接
UDDIClient uddiClient = new UDDIClient("META-INF/uddi.xml");
// 获取UDDI注册服务
UDDIRegistry registry = uddiClient.getRegistry("default");
// 创建ServiceQuery对象
ServiceQuery query = new ServiceQuery();
query.setServiceName("MyService");
query.setNamespace("http://example.org");
// 查询UDDI注册服务器
List<ServiceDetail> services = registry.findServices(query);
// 解析WSDL文件并获取Web服务的接口信息
WebRowSet webRowSet = registry.getWSDL(services.get(0).getServiceKey());
带有WSDL的UDDI是一种强大的Web服务注册和查找机制,通过增加WSDL的支持可以让用户更加清晰地了解Web服务的详细信息,以便更好地使用和集成Web服务。在实际操作中,可以使用类似于Apache JUDDI这样的开源UDDI实现来快速实现Web服务的注册和查找。