精华内容
下载资源
问答
  • 【Java】Web 服务编程技巧与窍门: 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序
    2021-03-07 05:52:33

    引言

    统一描述、发现和集成(UDDI) 正在快速成为在 Web 上存储可用业务流程的标准。虽然 UDDI 能够存储大量不同类型的数据,但就本技巧而言,我将把重点放在如何使用 UDDI 来注册 Web 服务,从而使 Web 服务可用于应用程序级的消费。

    假设

    已经安装了DB2 ®,并且创建了示例数据库(本示例要用到 Employee 表和 Department 表。要创建示例数据库,打开“DB2 First Steps”,然后单击“Create Sample Database”链接)。

    已经安装并正确配置了 UDDI 注册中心。请参阅用于自动安装 UDDI 注册中心来使用 Cloudscape 数据库的 InstallUDDI 清单。从命令窗口执行installuddilibs.bat来创建必需的目录结构。

    本技巧涵盖了哪些内容

    本技巧给 Java® 开发人员提供了一种快速并且简单的方法来开发他们自己的 UDDI Java 应用程序,并使用这些应用程序来消费在注册中心注册了的 Web 服务。附带的示例代码包含一个 Payroll Web 服务(从一个实体 bean 部署而来的)和一个 UDDI 会话 bean。

    技巧背景

    本技巧主要是基于教程“使用 WSDK V5.1 发现 Web 服务:UDDI”(developerWorks, 2003 年 11 月),参考资料部分引用了该教程。我的目的是提出基础的 Java 的统一描述、发现和集成 (UDDI4J) 类的扩展,从而帮助您快速建立您自己的 Web 服务 UDDI 注册中心。完成“Discover Web services with the WSDK V5.1: UDDI”这个教程的过程中,我开发了一个提供更高级访问 UDDI4J API 的扩展 API。因为本技巧的目的是注册、发现和消费存储在 UDDI 注册中心的 Web 服务,所以只展开了 UDDI4J 功能的一小部分。有关 UDDI 以及它在存储 Web 服务上的应用的更广泛的讨论,请参阅 Tom Bellwood 的文章“理解 UDDI”(developerWorks,2002 年 7 月)。

    Payroll Web 服务

    附带的Payroll.ear文件包含一个名为PayrollEjbPrj的企业 JavaBean (EJB) 方案。在这个 EJB 方案里有两个实体 bean(Department 和 Employee)以及一个会话 bean (Payroll)。Department 和 Employee 这两个实体 bean 显示了用于示例数据库的 getter 和 setter 方法。Payroll bean 显示了 12 种方法,它使用实体 bean 的 getter 方法从示例数据库中查询各种信息片断。示例代码很容易被扩展,从 Payroll bean 内部提供 setter 函数。显示所有的示例数据库字段不在本技巧的范围之内。

    UDDIClient 会话 EJB

    UDDIClient 会话 bean 几乎全部由下一部分讨论的 UDDI 实用 API 构成。

    UDDI 注册中心可以包括业务、服务以及 TModel。UDDIClient bean 为每类 UDDI 条目提供了一个 publish() 方法和两个 delete() 方法。如下面的清单 1所示,把任务移交给 UDDI 实用 API 处理时,方法签名(method signature)方法尽可能的简单。

    清单 1.方法签名

    public String publishBusiness(String busName)

    {

    return BusinessUtilities.publishBusiness(busName);

    }

    public void deleteBusinessByName(String busName)

    {

    BusinessUtilities.deleteBusinessByName(busName);

    }

    public void deleteBusinessByKey(String busKey)

    {

    BusinessUtilities.deleteBusinessByKey(busKey);

    }

    public String publishService(String serviceName, String busName,

    String tModelName, String tModelOverviewDoc,

    String accessPointStr, String description)

    {

    return

    ServiceUtilities.publishService(serviceName,busName,tModelName,

    tModelOverviewDoc,accessPointStr,description);

    }

    public void deleteServiceByName(String serviceName)

    {

    ServiceUtilities.deleteServiceByName(serviceName);

    }

    public void deleteServiceByKey(String serviceKey)

    {

    ServiceUtilities.deleteServiceByKey(serviceKey);

    }

    public String publishTModel(String tModelName, String overviewDocString)

    {

    return

    ModelUtilities.publishTModel(tModelName,overviewDocString);

    }

    public void deleteTModelByName(String tModelName)

    {

    ModelUtilities.deleteTModelByName(tModelName);

    }

    public void deleteTModelByKey(String tModelKey)

    {

    ModelUtilities.deleteTModelByKey(tModelKey);

    }

    getService 和 executeService 方法

    UDDIClient bean 的 getService 和 executeService 方法演示了如何重新获得我们的 Payroll Web 服务并调用其中的一些方法。executeService 方法用一个字符串表示一个存储在注册中心的服务的名称。在示例代码中,注册的服务是 Payroll Web 服务。为了达到本技巧的预期效果,我硬编码了两个方法,供注册中心内创建的 Payroll Web 服务调用,如清单 2所示。

    清单 2. getService 和 executeService 方法

    /**

    * Execute a Service found in the UDDI registry

    * @param serviceName Service name used to search for

    and execute available UDDI Services

    */

    public void executeService(String serviceName)

    {

    //Obtain all access points for services providing this

    service

    Map accessPoints =

    ServiceUtilities.getServiceAccessPoints(serviceName);

    //Create a set of accespoints

    Set accessSet = accessPoints.keySet();

    Iterator it = accessSet.iterator();

    Payroll payroll = null;

    Object obj = null;

    while(it.hasNext())

    {

    try

    {

    //For each access point, create an

    PayrollService object

    String accessPoint = (String)it.next();

    System.out.println("Service Access Point: " +

    accessPoint);

    payroll = getService(accessPoint);

    if(payroll != null)

    {

    System.out.println("Employee 000010's

    bonus is " + payroll.getBonus("000010"));

    System.out.println("Employee 000010's

    phone number is " + payroll.getPhoneNo("000010"));

    }

    }

    catch(Exception e)

    {

    e.printStackTrace();

    }

    }

    }

    /**

    * Create a Service object, to communicate with the

    Web service defined by the URL

    * @param urlString the URL of the Web service

    * @return A PayrollService object.

    */

    private Payroll getService(String urlString)

    {

    PayrollServiceLocator payrollServiceLocator =

    new PayrollServiceLocator();

    Payroll payroll = null;

    try

    {

    URL url = new URL(urlString);

    System.out.println("Payroll URL: " + url.toString());

    System.out.println("Getting Payroll object");

    payroll =

    payrollServiceLocator.getPayroll(url);

    System.out.println("Payroll object retrieved

    successfully");

    }

    catch (MalformedURLException e)

    {

    System.out.println("URL Exception: " + e.toString());

    }

    catch(javax.xml.rpc.ServiceException se)

    {

    System.out.println("Service Exception: " +

    se.toString());

    }

    return payroll;

    }

    UDDI 实用 API

    UDDI 实用 API 有四个主要的类,我将在清单3、4以及5中详细描述其中的三个。第 4 个 (Utilities.class) 包含所有的 UDDI 注册的设置信息。 "使用 WSDK V5.1 将服务发布到 UDDI 注册中心"(developerWorks,2003 年 11 月)这个教程详细解释了其中的值和结构。

    清单 3. BusinessUtilities

    /**

    * Display business information of a BusinessEntity

    * @param businessKey The businessKey of the BusinessEntity

    whose detail is to be displayed

    */

    public static void showBusinessDetail(String businessKey)

    /**

    * Locate a Business by name

    * @param busName The business name used to search for a business

    * @return Vector: This method returns a Vector of Strings.

    Each String represents the businessKey of a business matching the query

    */

    public static Vector findBusinessByName(String busName)

    /**

    * Locate a Business by key

    * @param businessKey The business key used to search for a business

    * @return BusinessList: This function returns a BusinessList on success.

    In the event that no matches were located for the specified criteria,

    a BusinessList structure with zero BusinessInfo structures is returned.

    */

    public static BusinessList findBusinessByKey(String businessKey)

    /**

    * Delete a Business by name

    * @param busName Business name used to find and delete a business

    */

    public static void deleteBusinessByName(String busName)

    /**

    * Delete a Business by key

    * @param businessKey A Business key used to find and delete a business

    */

    public static void deleteBusinessByKey(String businessKey)

    /**

    * Publish a Business

    * @param busName The name of the business to be published

    * @return String: This method returns a String representing the

    key of the newly published Business

    */

    public static String publishBusiness(String busName)

    清单 4. ModelUtilities

    /**

    * Locate a technical Model by name

    * @param tModelName the Name

    * @return Vector: This method returns a Vector of

    tModelKey Strings

    */

    public static Vector findTModelByName(String tModelName)

    /**

    * Locate a technical Model by key

    * @param tModelName The TModel key used to search for a TModel

    * @return TModelList: This method returns a TModelList

    of TModelInfos objects

    */

    public static TModelList findTModelByKey(String tModelKey)

    /**

    * Delete a technical Model by name

    * @param tModelKey TModel name used to delete a TModel

    */

    public static void deleteTModelByName(String tModelName)

    /**

    * Delete a technical Model by key

    * @param tModelKey TModel key used to delete a TModel

    */

    public static void deleteTModelByKey(String tModelKey)

    /**

    * Publish a technical Model

    * @param tModelName The TModel name

    * @param overviewDocString This parameter expects a

    URL-String representation of the WSDL address.

    EX: http://localhost:9080/MyRouter/Test.wsdl

    * @return String: This method returns a String

    representing the key of the newly published TModel

    */

    public static String publishTModel(String tModelName,

    String overviewDocString)

    清单 5. ServiceUtilities

    /**

    * Locate a Service by name

    * @param serviceNames A vector of Name objects

    * @return Map: This method returns a Map of service

    and business key pairs

    */

    public static Map findServiceByName(Vector serviceNames)

    /**

    * Locate a Service by key

    * @param serviceKey A key used to search for a Service

    * @return ServiceList: This method returns a ServiceList of

    ServiceInfos objects

    */

    public static ServiceList findServiceByKey(String serviceKey)

    /**

    * Delete a Service by name

    * @param serviceName Service name used to find

    and delete a Service

    */

    public static void deleteServiceByName(String serviceName)

    /**

    * Delete a Service by key

    * @param serviceKey Service key used to find and delete

    a Service

    */

    public static void deleteServiceByKey(String serviceKey)

    /**

    * Publish a Service

    * @param serviceName The name of the Service to be published

    * @param businessName The Business name used to

    associate the service to. If Business name does not exist

    in the registry, a Business entry will be created.

    * @param tModelName The TModel that the service implements.

    If TModel is not found in the registry and the

    TModelOverviewDoc parameter is not null, a TModel entry

    will be created.

    * @param tModelOverviewDoc Required only if the TModel name

    provided in the tModelName parameter is not

    found in the registry.

    This parameter expects a URL-String representation of the

    WSDL address. EX: http://localhost:9080/MyRouter/Test.wsdl

    * @param accessPointStr

    * @param description Optional Service description.

    * @return String: This method returns a String representing

    the key of the newly published Service

    */

    public static String publishService(String serviceName,

    String busName, String tModelName, String tModelOverviewDoc,

    String accessPointStr, String description)

    结束语

    正如您所看到的,UDDI 程序设计是在使用 UDDI 注册中心的网络上共享信息的非常有效的途径。这里的示例代码,更具体地说,UDDI 实用 API 提供了一个起点,从这个起点出发您能够开发更加用户化的解决方案。

    更多相关内容
  • UDDI

    千次阅读 2017-10-18 22:52:38
    见:...UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。UDDI,英文为 "Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”。

    见:https://baike.baidu.com/item/UDDI/2901586?fr=aladdin


    UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。UDDI,英文为 "Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”。




    简介

    编辑
    UDDI [1]   是一种规范,它主要提供基于Web服务的注册和发现机制,为Web服务提供三个重要的技术支持:①标准、透明、专门描述Web服务的机制;②调用Web服务的机制;③可以访问的Web服务注册中心。UDDI规范由OASIS(Organization for the Advancement of Structured Information Standards [1]   )标准化组织制定。 [1]  

    描述

    编辑
    Universal Description Discovery and Integration即统一描述、 发现和集成协议。
    UDDI始于2000年,由 Ariba,IBM, Microsoft和其他33家公司创立.UDDI registries 提供了一个机制,以一种有效的方式来浏览,发现 Web Services 以及它们之间的相互作用.
    UDDI计划是一个广泛的,开放的行业计划,它使得商业实体能够 (1) 彼此发现,(2) 定义他们怎样在internet上互相作用,并在一个全球的注册体系架构中共享信息。
    UDDI同时也是 Web服务集成的一个体系框架。它包含了服务描述与发现的标准规范。UDDI规范利用了W3C和Internet工程任务组织(IETF)的很多标准作为其实现基础,比如 可扩展标记语言标准通用标记语言下的一个子集、外语缩写:XML),HTTP和域名服务(DNS)这些协议。另外,在跨平台的设计特性中,UDDI主要采用了已经被提议给W3C的SOAP(Simple Object Access Protocol, 简单对象访问协议)规范的早期版本。
    UDDI是一个分布式的互联网服务注册机制,它集描述(Universal Description)、发现(Discovery)与集成(Integration)为一体,其核心是注册机制。UDDI实现了一组可公开访问的 接口,通过这些接口, 网络服务可以向服务信息库注册其服务信息、服务需求者可以找到分散在世界各地的网络服务。
    UDDI 基于现成的标准,如 可扩展标记语言(Extensible Markup Language,XML)和简单对象访问协议(Simple Object Access Protocol,SOAP)。UDDI 的所有兼容实现都支持 UDDI 规范。公共规范是机构成员在开放的、兼容并蓄的过程中开发出来的。目的在于先生成并实现这个规范的三个连续版本,之后再把将来开发得到的成果的所有权移交给一个独立的标准组织。
    程序开发人员通过UDDI机制查找分布在互联网上的 Web Service,在获取其WSDL文件后,就可以在自己的程序中以SOAP调用的格式请求相应的服务了。
    UDDI 列表保存在 UDDI 注册中心。每个列表可以包含以下内容:
    白页:地址、联系人和已知 标识符
    黄页:基于标准分类法的行业类别
    绿页:有关业务公开的服务的技术信息
    绿页即所需的全部内容。它们可提供对服务的 WSDL信息的访问。

    优势

    编辑

    目录服务工具

    它可以用来说明一个Web服务的一些信息类型,以便帮助服务的请求者确定如下问题: WHO,WHAT,WHERE,HOW .UDDI定义如何查找 Web 服务(及其 WSDL 文件)。
    任何规模的行业或企业都能得益于 UDDI。
    在 UDDI 之前,还不存在一种 Internet 标准,可以供企业为它们的企业和伙伴提供有关其产品和服务的信息。也不存在一种方法,来集成到彼此的系统和进程中。
    UDDI 规范帮助我们解决的问题:
    • 使得在成百万当前在线的企业中发现正确的企业成为可能
    • 定义一旦首选的企业被发现后如何启动商业
    • 扩展新客户并增加对客户的访问
    • 扩展销售并延伸市场范围
    • 满足用户驱动的需要,为在全球 Internet 经济中快速合作的促进来清除障碍
    UDDI 并不像 WSDL 和 SOAP 一样深入人心,因为很多时候,使用者知道 Web 服务的位置(通常位于公司的企业内部网中)。

    目录服务实现

    ·Apache jUDDI
    ·Ruddi
    ·OpenUDDI

    目录服务项目

    ·UDDI浏览器
    ·Apache Scout
    ·UDDI4J
    ·uddi4r
    ·UDDI: Lite
    ·Sun的JAXR参考执行JWSDP

    展开全文
  • 使用UDDI4J连接JUDDI

    2021-03-07 05:52:39
    一、简介IBM 发布的 uddi4j是UDDI的java实现,它包含发布、查找、取消web服务的API。而juddi是apache组织的一个开源项目,它部署在tomcat等服务器上是UDDI的服务器。本文的主要内容:1. 利用uddi4j 的API创建web服务...

    一、简介

    IBM 发布的 uddi4j是UDDI的java实现,它包含发布、查找、取消web服务的API。而juddi是apache组织的一个开源项目,它部署在tomcat等服务器上是UDDI的服务器。

    本文的主要内容:

    1. 利用uddi4j 的API创建web服务;

    2. 将创建好的web服务发布到juddi的服务器上;

    3. 在juddi服务器上查询web服务。

    二、 运行环境

    环境:winxp + jdk1.6 + tomcat6.0 + mysql5.0 + juddi-2.0rc5 + uddi4j-2.0.5(各种产品的版本没有太大影响)

    三、安装与配置juddi

    1. 下载juddi-2.0rc5.zip(官方网址:http://ws.apache.org/juddi/releases.html),解压后将juddi-2.0rc5\webapp\juddi拷贝到tomcat的webapp目录下。

    2. 确保mysql正确安装,将mysql的jdbc驱动程序拷贝到tomcat的common\lib下,我这里用到的是mysqldriver.jar。

    3. 修改tomcat/conf/server.xml在后添加如下:

    4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.pngusername4f1150b881333f12a311ae9ef34da474.pngroot4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.pngpassword4f1150b881333f12a311ae9ef34da474.png1234564f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.pngurl4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.pngjdbc:mysql://localhost/juddi 

    4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.pngdriverClassName4f1150b881333f12a311ae9ef34da474.pngcom.mysql.jdbc.Driver4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

    其中:username和password是mysql数据库的用户名和密码,url为数据库的url,driverClassName是mysql的JDBC驱动程序,如果所用到的数据库版本或是驱动程序版本不同这里也要变化。

    4. 新建juddi用到的数据库,并插入数据,具体就是执行\juddi-2.0rc5\sql\mysql文件夹中的两个sql文件:create_database.sql、insert_publishers.sql,前一个sql文件可以直接执行,将创建数据库juddi,后一个sql文件要修改成如下:

    USE juddi;

    -- *** SAMPLE PUBLISHER ***

    INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN) VALUES ('juddi','juddi','juddi@apache.org','true','true');

    这样就插入到表publisher中一条数据,就是一个用户,用户名:juddi,密码:juddi,我们在uddi4j中将用这个用户来创建web服务。

    5. 验证安装是否成功。重启tomcat,访问http://localhost:8080/juddi/happyjuddi.jsp,如果jUDDI DataSource Validation段如下面的效果而没有用红色字体报错则说明juddi部署成功。

    jUDDI DataSource Validation

    + Got a JNDI Context!

    + Got a JDBC DataSource (dsname=java:comp/env/jdbc/juddiDB)

    + Got a JDBC Connection!

    + SELECT COUNT(*) FROM PUBLISHER = 1

    四、运行uddi4j的示例程序创建、发布、查找web服务

    1. 下载uddi4j-bin-2.0.5.zip.

    2. 建立一个工程 名为uddi4jDemo,引入包uddi4j.jar , soap.jar,activation.jar,mail.jar。

    把uddi4j sample里面的 samples.prop configurator.java SaveBusinessExample.java FindBusinessExample.java publisherAssertionExample.java 放在工程默认package下

    3. 打开samples.prop这个文件 修改设置下参数

    设置url

    inquiryURL = http://localhost:8080/juddi/inquiry

    publishURL = http://localhost:8080/juddi/publish

    设置

    userid = juddi

    password = juddi

    设置soap transport 默认就是这个

    TransportClassName=org.uddi4j.transport.ApacheSOAPTransport

    4. 运行结果

    运行 SaveBusinessExample.java

    *********** Running SaveBusinessExample ***********

    Get authtoken

    Returned authToken:authToken:60BDF210-6641-11DB-A066-BC0BE7D6EEB5

    Save 'Sample Business'

    Returned businessKey:60DF35B0-6641-11DB-A066-A0B53CE33E0E

    Listing businesses starting with S after we publish

    Sample Business

    运行FindBusinessExample.java

    *********** Running FindBusinessExample ***********

    Sample Business

    posted on 2008-08-15 16:38 胖胖泡泡 阅读(2075) 评论(10)  编辑  收藏

    展开全文
  • UDDI 注册中心是Web Service 技术体系中的重要组成部分, UDDI 的数据特征和操作...详细分析了UDDI 的信息模型, 结合目录服务技术提出基于LDAP 的UDDI 系统架构, 在此基础上实现了灵活、高效、低成本的UDDI 注册中心。
  • 文章目录序1. 阅读文档winServer2003文档winServer2008文档winServer2008R2文档2. 安装VMWare安装winserver2003安装UDDI3. 运行和访问UDDI虚拟机内访问主机访问4. 使用UDDI 推荐阅读:在Windows 2003中安装UDDI...


    推荐阅读:在Windows 2003中安装UDDI服务器及其使用 (在我这这篇博客的时候发现的,写的也非常全)


    为了想看看这一历史产物(UDDI)什么样,所以安装记录一下

    其实有很多厂商有发布 UDDI程序,比如apache的JUDDI、weblogic的UDDI等。这里只是觉得winserver的UDDI安装操作比较简单(图形化安装),所以就选择安装winserver的

    一、阅读文档

    一开始只看到了winServer2003文档,以为智能在2003上装UDDI,所以本文都是基于2003操作的
    不过两个系统中的UDDI应该也没什么差别。2008年的时候,UDDI基本也都没有踪影了。IBM和微软的公共UDDI早在2006年就已关闭

    winServer2003文档

    根据微软官方文档:Using UDDI Services 显示的信息
    该文档适用于winServer2003系列
    在这里插入图片描述
    然后通读一下使用文档:Using UDDI Services
    在这里插入图片描述

    winServer2008文档

    文档地址:UDDI Web Component
    在这里插入图片描述

    winServer2008R2文档

    文档地址:Removal of UDDI Services from Server Operating System
    UDDI在winServer2008 R2中被移除,不过留有解决办法,可以在R2上使用UDDI服务

    在这里插入图片描述

    二、安装

    VMware安装winserver2003

    iso文件在itellyou找,分cd1和cd2

    (也可以直接迅雷打开
    cd1:ed2k://|file|cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1_X13-46432.iso|637917184|284DC0E76945125035B9208B9199E465|/
    cd2:ed2k://|file|cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd2_X13-13895.iso|129703936|512C89A5839FFC8A3F3124ACB9E9CB75|/)

    安装教程可以参考:如何在虚拟机上安装Server 2003 R2

    唯一可能要注意的是,iso镜像分cd1和cd2
    在这里插入图片描述
    VMware创建虚拟机时用cd1,安装成功后,会弹出继续安装cd2的窗口
    在这里插入图片描述
    此时要将cd2挂载到VMware的虚拟光驱,选择VMware菜单-虚拟机-设置
    在这里插入图片描述
    如下,更换ISO文件为cd2。注意要勾选"已连接"(默认是不勾选),虚拟机中的系统才能识别到
    在这里插入图片描述

    如果不勾选 “已连接”,还可以通过VMware右下角的虚拟硬件状态图标来操作
    点击光盘图标,点击"连接"即可
    在这里插入图片描述

    安装完cd2后,重启,界面变成了如下(结尾多了个R2),就说明全部安装完了
    在这里插入图片描述

    安装UDDI

    开始-控制面板-添加或删除程序,点击左侧添加/删除Windows组件,勾选UDDI服务
    在这里插入图片描述
    双击UDDI服务,确保三个都勾选(默认都勾选的)
    在这里插入图片描述
    下一步
    在这里插入图片描述
    下一步。重要,不要求SSL,否则运行后点击"发布"按钮会无响应(如果选错了,后续也可以改,讲到发布的时候会说明)
    在这里插入图片描述

    下一步
    在这里插入图片描述
    下一步
    在这里插入图片描述
    下一步,随便起个名
    在这里插入图片描述
    下一步
    在这里插入图片描述
    下一步,开始配置进度。但不是很顺利,弹出了警告。此时只需要重新将安装此winserver2003的两个iso文件中的cd1挂在到虚拟光驱即可
    在这里插入图片描述
    最后顺利安装完成UDDI组件
    在这里插入图片描述

    在这里插入图片描述

    三、运行和访问UDDI

    根据官方文档要求,要运行UDDI需要先启动IIS,在如上安装的winserver2003中,IIS是默认启动的,不需要额外设置

    虚拟机内访问

    如文档所说,地址栏输入 http://serverName/uddi,虚拟机内访问就是http://localhost/uddi
    在这里插入图片描述

    主机访问

    如果要在主机访问,就把地址替换为虚拟机的ip地址即可
    在这里插入图片描述
    【访问失败】
    主机访问会提示这不是私密链接,需要用户名密码

    在这里插入图片描述

    解决方法有两个

    1. 输入虚拟机系统的用户名密码。如果没有密码,就设置一个密码
      设置密码在开始-管理攻击-计算机管理,双击下图示Administrator用户 设置密码

      在这里插入图片描述

    2. 配置此网站可匿名访问,如下图示,勾选"启用匿名访问"。【不建议,匿名访问时,网页上不会显示发布按钮

      在这里插入图片描述

    最后,访问成功的页面
    在这里插入图片描述

    四、使用UDDI

    注意事项

    如果安装UDDI的时候,选择了使用SSL,那么点击"发布"、"协调"按钮的时候页面会响应失败
    解决办法如下 (开始-控制面板-管理工具-UDDI服务,右击uddi服务名-属性,取消勾选"到此站点的发布请求要求SSL")

    在这里插入图片描述

    可以从首页的指南中获取到UDDI使用帮助教程

    在这里插入图片描述
    在这里插入图片描述

    1. 发布

    点击发布按钮,有一个现象是IE浏览器和Chrome浏览器展现的页面不一样,url也有所不同。这是asp页面的兼容性问题,asp是微软开发的web页面技术,所以接下来改为使用IE浏览器,以免出现其他问题
    在这里插入图片描述

    点击发布-提供者-添加提供者
    在这里插入图片描述
    在这里插入图片描述
    可以添加提供者的联系人
    在这里插入图片描述
    在这里插入图片描述

    点击服务-添加服务
    在这里插入图片描述

    添加了一个服务
    在这里插入图片描述
    点击绑定,添加服务的访问点(是一个asmx结尾的url)
    在这里插入图片描述
    绑定一个从 webxml网站 中找的一个天气查询的服务

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    到这里为止,其实就已经发布好了一个服务。就好比,一个人开了一个公司,他现在在工商局进行了注册,在电信局也做了黄页登记了。客户需要这些服务的话,通过搜索来查询

    不过接下来,我们添加实例(wsdl) - tModel。wsdl可以用工具读取并生成调用SOAP-WebService的代码
    点击tModels-添加tModel
    在这里插入图片描述
    在这里插入图片描述
    点击类别,依次选择到下面这样的类别层次,点击添加类别
    在这里插入图片描述
    点击概述文档,填入WSDL的地址,这是还是填上边 webxml网站 天气查询服务的wsdl地址

    在这里插入图片描述
    在这里插入图片描述

    这时,一个tModel就创建好了,接下来引用给我们的服务
    转到服务的实例信息-添加实例信息
    在这里插入图片描述
    在这里插入图片描述
    这样就添加好了tModel,使用者查找到之后,可以在程序中读取WSDL直接生成调用服务接口的代码

    2. 搜索

    点击搜索。可以按照类别、服务、提供者、tModel查询,通过刚才的操作

    1. 按照分类查询 (我们刚刚添加的分类不属于可查询的这两个分类之一)
      在这里插入图片描述
    2. 按照服务或提供者查询
      在这里插入图片描述
      在这里插入图片描述
      点击左侧的结果,可以看到对应的信息
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    3. 按照tModels查询
      在这里插入图片描述
      点击左侧结果,可以看到这个tModel的信息 (不过看不到引用了这个tModel的服务和提供者等信息)
      在这里插入图片描述

    The end


    😁欢迎加入QQ群交流: [游戏-Web-开发技术栈 ☄️] '300567032’
    点击下方图标一键加入!
    游戏-Web-开发技术栈 ☄


    展开全文
  • SCOUD UDDI directory-开源

    2021-05-15 08:35:14
    SCOUD是基于Java的开源UDDI业务目录。 因此,SCOUD能够为UDDI商业注册提供服务。 SCOUD旨在完全符合UDDI 3.0版API规范。
  • UDDI 注册中心是Web Service 技术体系中的重要组成部分,UDDI 的数据特征和操作...详细分析了UDDI 的信息模型,结合目录服务技术提出基于LDAP的UDDI 系统架构,在此基础上实现了灵活、高效、低成本的UDDI 注册中心。
  • UDDI是一个技术,更贴切的说应该是一个目录服务,或者一个项目、计划、运动 UDDI是统一描述、发现和集成(Universal Description, Discovery, and Integration)的缩写 UDDI是一种用于描述、发现、集.
  • WSDL UDDI

    2018-07-13 09:19:19
    UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。UDDI,英文为 "Universal Description, Discovery and Integration",可译为"通用描述、发现与集成服务"。什么是 UDDI?...
  • 在consul上注册web服务

    2021-07-31 06:33:49
    1. 创建web服务IDEA->File->New->Project->Empty Project,project name取名provider,点击finish2. 创建provider module在IDEA demo project中选择File->New->Module->Spring Initializer->...
  • UDDI 【Universal Description, ...统一描述、发现和集成协议(UDDI, Universal Description, Discovery and Integration)标准定义了Web服务的发布与发现的方法 UDDI 提供了一种基于分布式的商业注册中心的方法,该
  • 自定义webservice服务 我们在上一章节中已经使用wsimport生成本地代理来调用webservice的服务了,其实我们自己写的web应用程序也是可以发布webservice的 我们发布了webservice的话,那么其他人也是可以调用我们...
  • 如何使用UDDI服务

    万次阅读 2006-12-07 15:11:00
    使用 UDDI 的 Web 服务描述和发现(第一部分)Karsten JanuszewskiMicrosoft Corporation 2001年10月3日 查看和下载本文的源代码(英文)。简介到目前为止,At Your Service 专栏已经介绍了如何建立 Web 服务的实际...
  • 方法二:1)删除uddiexplorer文件夹2)限制uddiexplorer应用只能内网访问方法三:(常用)Weblogic服务端请求伪造漏洞出现在uddi组件(所以安装Weblogic时如果没有选择uddi组件那么就不会有该漏洞),更准确地说是uudi包...
  • WebService三大基本元素 SOAP WSDL UDDI

    千次阅读 2016-06-26 16:06:14
    1、SOAP 即 Simple Object AccessProtocol 也就是简单对象访问协议。 SOAP 是用于在应用程序之间进行通信...SOAP 协议的一个重要特点是它独立于底层传输机制,Web 服务应用程序可以根据需要选择自己的数据传输
  • 本技巧建立了一个使用统一描述、发现和集成 (Universal Description, Discovery, and Integration,UDDI) 来注册应用程序级消费的 Web 服务实例。作者提供了详细的代码示例以及基于 Java 的统一描述、发现和集成 ...
  • Uddi注册中心教程

    千次阅读 2013-10-13 14:28:48
    本文首先给出自己搭建的一个uddi注册中心,下载链接:需要的同学在我的资源里面下载。 工欲善其事,必先利其器。在学习uddi注册中心的过程中,我深刻认识到有好的资料是非常重要的。由于在学习的前期,看到的都是...
  • webservice之UDDI

    千次阅读 2014-01-03 13:58:51
    UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。 UDDI,英文为 "Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”。 什么是 UDDIUDDI 是一...
  • 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含了运行环境,编程模型, 架构风格和相关方法论等在内的一整套新的分布式...
  • win7下架设UDDI服务器

    千次阅读 2011-09-17 13:46:36
    JDK1.5+Tomcat5.5+Mysql+juddi 架设UDDI服务器 安装环境: win7 64位 软件版本(附下载链接): JDK: jdk-1_5_0_22-windows-amd64 http://download.oracle.com/otn-pu
  • web服务中soap、wsdl、uddi理解

    千次阅读 2016-06-07 11:20:44
    用来在消费者和服务提供者之间传送消息。SOAP是一种基于XML 的机制,用于在网络应用程序之间进行结构化数据交换。SOAP中会指定服务端调用的方法,已经调用的参数等。WSDL用来描述服务。它是一个XML 文档,实现SOAP...
  • SOAP(Simple Object Access Protocol) 简单对象访问协议; WSDL(Web Services Description Language) Web服务描述语言; UDDI (Universal Description Discovery and Integration...UDDI用来注册和查找服务; 而S...
  • WSDL uDDI

    2014-10-01 18:38:16
    WSDL UDDI  UDDI是已走过目录服务,企业

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,635
精华内容 3,454
关键字:

uddi目录服务

友情链接: LAB4.zip