jUDDI(發音 Judy)是 Apache 孵化的 UDDI v2/v3 Java 開源實現,為 Web Services 提供服務發布/發現註冊中心。
官網:ws.apache.org/juddi/releases.html。當前 0.9rc3 含已知 Bug,建議關注 0.9rc4/final(依賴 Axis 1.2 final)。
支持任意 ANSI SQL 數據庫(MySQL/DB2/Sybase...)。MySQL 執行:
juddi-0.9rc3/sql/mysql/create_database.sql
juddi-0.9rc3/sql/mysql/insert_publishers.sql
juddi 目錄至 webapps,MySQL 驅動放入 WEB-INF/lib。server.xml Host 元素下添加 Context 與 DataSource:<Context path="/juddi" crossContext="true" reloadable="true" debug="5" docBase="juddi"/>
<Resource name="jdbc/juddiDB" type="javax.sql.DataSource" auth="Container"/>
<ResourceParams name="jdbc/juddiDB">
<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>
<parameter><name>driverClassName</name><value>com.mysql.jdbc.Driver</value></parameter>
<parameter><name>url</name><value>jdbc:mysql://host:3306/juddi?autoReconnect=true</value></parameter>
<parameter><name>username</name><value>root</value></parameter>
<parameter><name>password</name><value>****</value></parameter>
<parameter><name>maxActive</name><value>100</value></parameter>
<parameter><name>validationQuery</name><value>select count(*) from PUBLISHER</value></parameter>
</ResourceParams>
訪問 https://127.0.0.1:8080/juddi/happyjuddi.jsp,無紅字即安裝成功。
juddi-0.9rc3/src/uddi4j/org/apache/juddi/uddi4jINSERT INTO PUBLISHER VALUES ('juddi','juddi user','true','true')Configurator.load() 讀取項目相對路徑。TransportClassName → 改為 org.uddi4j.transport.apacheAxisTransport(匹配 Axis)。TestFindBusiness 大小寫匹配 Bug → 註釋相關測試。PublisherManager.getExpiredAuthToken 配置為空 → 重寫方法注入 testprops 初始化 RegistryProxy。0.9rc3 無獨立客戶端樣例,需從 CVS samples 目錄獲取完整示例(CVS 地址)。
強烈推薦閱讀 IBM developerWorks 系列:理解 UDDI 註冊中心的 WSDL,建立完整概念模型。