本篇文章的内容主要有两个部分:简要介绍一下juddi以及围绕介绍使用juddi进行服务相关实验的详细步骤。
一、juddi简介
juddi是uddi的java实现(关于uddi的具体内容可以参考这篇文章:)。相当于是基于uddi标准开发的一套API,开发者可以使用这套API进行web服务的创建、查询等操作。
juddi本身具有以下特点:
a)开源(源码见:apache/juddi: Mirror of Apache jUDDI (github.com))
b)跨平台(unix, windows等主流平台)
c)与任何支持ANSI标准SQL的关系数据库(MySQL、Oracle、DB2、Sybase、Derby等)一起使用
d)可部署在任何支持Servlet2.3规范的Java应用程序服务器上,包括:Jakarta Tomcat、JOnAS、WebSphere、WebLogic、Borland Enterprise Server、JRun等
二、juddi服务相关实验
关于实验相关的介绍,主要是使用juddi进行简单服务创建、服务发布、服务查询的整体流程。内容主要分为三个部分:
1.环境配置
2.使用UI界面进行服务相关操作
3.使用命令接口进行服务相关操作
1.环境配置:
关于环境配置,本次实验的环境如下:windows10+jdk1.8+juddi3.3.4+tomcat7.0.64+maven3.0.4
juddi3.3.4下载地址:http://archive.apache.org/dist/juddi/juddi/3.3.4/
jdk1.8安装教程:2021最新Java JDK1.8的安装超详细教程_java_脚本之家 (jb51.net)
maven安装教程:Windows下 maven3.0.4的安装步骤+maven配置本地仓库 - 爱码网 (likecs.com)
因为后续还要使用接口访问,环境这里也用VS CODE配置下maven,可参考:https://zhuanlan.zhihu.com/p/486297269
下面说一下相关环境变量的设置:
path下(主要是显示的那四个):
如果以上环境变量配置完成后,可以检测是否能够开启Juddi的服务端,方式如下,cmd中直接
catalina run
然后在本地网页打开:www.localhost:8080
ps:至于为什么是这个网址,因为juddi是基于tomcat,具体关于tomcat的可以看这篇:tomcat
出现如下界面,代表环境基本配置成功:
2.使用UI界面进行服务相关操作
进入juddi主页后,点击user interface:
进入页面后,登录默认账号(当然也可以自己创建),账号是uddi,密码是uddi
登录成功后就可以进行下面的一些操作:
首先创建一个tmodel:
这个是建立企业的Keygenerator,在uddi和keygenerator的内容可以自己更改,然后点击save保存即可:
如果创建成功,如下图所示:
下面创建一个business实体:
在buiness实体创建,基于刚才的tmodel在其作用域下创建一个部分(本图是sale-unit),然后填写关于此buiness的基本信息:
下面为该business创建服务,点击create下service并找到刚刚创建的sale-unit,点击后面的add增加服务:
每一个服务需要对应的service key,回到tmodel的key-generator再新建一个:
然后创建服务:
服务创建成功后,可通过Discover下的Service进行查询,同理可查询Buiness
3.使用命令接口进行服务相关操作
关于命令接口,因为juddi是基于java所以需要使用maven做管理,关于maven的介绍,可以看看这篇文章。本次内容是在VS CODE中配置的maven,具体配置流程可参考:Windows下 maven3.0.4的安装步骤+maven配置本地仓库 - 爱码网 (likecs.com)
在juddi源码中源码中给了几个example,位置在:juddi/juddi-examples at master · apache/juddi (github.com)。本次实验只选取其中最简单的三个:
可以去下载下面这个源码(也最好能给个star,感谢~):https://github.com/Rvlis/juddiv3.3.4-configuration
介绍一下三者的功能:
create-partition建立一个business
simple-publish,给business发布一个服务:
simple-browse查询当前列表下所有服务
(以下假设已经下载上述代码并成功配置了vs code下maven环境)
1.打开juddi服务器:cmd 运行 catalina run(上面有过程,不再赘述)
ps:先检测下mvn能不能正常启动,否则vs code中没法使用maven
找不到就重新设置下环境变量
1)create-partition(以创建business为例)
进入create-partition目录,执行:
mvn -q -Pdemo test
输入账号密码及要创建的相关内容:
显示如下成功:
2)simple-publish
然后进行发布,进入simple-publish目录执行:
mvn -q -Pdemo test
然后根据提示输入就行,特别需要注意的是business-key是之前创建的,service-key是和自己的服务有关
出现下面这个就成功了:
3)simple-browse
下面进行查询,进入simple-browse目录,执行命令就能看到该用户的所有内容,我在此把日志输出。命令是:
mvn -q -Pdemo test
PS D:\Desktop\juddiv3.3.4-configuration-main\examples\simple-browse> mvn -q -Pdemo test
-------------------------------------------------------
T E S T S
-------------------------------------------------------
There are no tests to run.
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
十月 24, 2022 11:25:40 下午 org.apache.juddi.v3.client.config.UDDIClient <init>
信息: jUDDI Client version - 3.3.4
十月 24, 2022 11:25:40 下午 org.apache.juddi.v3.client.config.ClientConfig loadConfiguration
信息: Reading UDDI Client properties file file:///D:/Desktop/juddiv3.3.4-configuration-main/examples/simple-browse/target/classes/META-INF/simple-browse-uddi.xml use -Duddi.client.xml to override
十月 24, 2022 11:25:42 下午 org.apache.juddi.v3.client.transport.JAXWSTransport getUDDISecurityService
警告: You should consider use a secure protocol (https) when sending your password!
Please enter your name:
uddi
Please enter your password:
uddi
=================================================================================
Business Key: uddi:juddi.apache.org:node1
Name: An Apache jUDDI Node
Description: This is a UDDI registry node as implemented by Apache jUDDI.
Services:
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-custodytransfer
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDI Custody and Ownership Transfer Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-inquiry-rest
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDI Inquiry REST Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-inquiry
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDI Inquiry Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-publish
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDI Publish Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:replication
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDI Replication API Version 3
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-security
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDI Security Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-subscriptionlistener
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDI Subscription Listener Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-subscription
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDI Subscription Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-valueset
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDI Value Set API Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-valueset-cache
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDI Value Set Caching API Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-inquiryv2
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDIv2 Inquiry Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-publishv2
Owning Business Key: uddi:juddi.apache.org:node1
Name: UDDIv2 Publish Service
------------------------------------------------------------------------
Service Key: uddi:juddi.apache.org:services-publisher
Owning Business Key: uddi:juddi.apache.org:node1
Name: jUDDI Publisher Service
=================================================================================
Business Key: uddi:www.huawei.com:new-unit
Name: new-unit
Description: 新部门
Services:
------------------------------------------------------------------------
Service Key: uddi:www.huawei.com:new-unit:new-service
Owning Business Key: uddi:www.huawei.com:new-unit
Name: service
=================================================================================
Business Key: uddi:www.huawei.com:sale-unit
Name: sale-unit
Description: 销售单位
Services:
------------------------------------------------------------------------
Service Key: uddi:www.huawei.com:sale-unit:advertisement
Owning Business Key: uddi:www.huawei.com:sale-unit
Name: ad
------------------------------------------------------------------------
Service Key: uddi:www.huawei.com:sale-unit:people
Owning Business Key: uddi:www.huawei.com:sale-unit
Name: people service
=================================================================================
Business Key: uddi:www.huawei.com:tec-unit
Name: tec-unit
Description: 技术单位
Services:
------------------------------------------------------------------------
Service Key: uddi:www.huawei.com:tec-unit:development
Owning Business Key: uddi:www.huawei.com:tec-unit
Name: develop
从上面的日志可以看出,之前创建的服务的相关信息都在上面了
参考资料:https://www.cnblogs.com/for-dream-tgt/category/976816.html