UDDI (Universal Description, Discovery, and Integration) 是 Web Services 發現與整合的行業標準。UDDI4J 是 IBM 主導的開源 Java 類庫,提供完整的程式化 API 讓 Java 應用發布、查詢、綁定 UDDI 註冊中心的服務資訊。
com.ibm.uddi.client.UDDIProxy:核心代理類,封裝所有 UDDI API 呼叫 (find_xxx, save_xxx, delete_xxx),對應 UDDI Programmer's API Specificationcom.ibm.uddi.datatype.*:資料模型類別,對應 UDDI XML 結構 (BusinessEntity, BusinessService, BindingTemplate, TModel 等)
// 1. 建立 Proxy,指定 UDDI 節點查詢/發布 URL
UDDIProxy proxy = new UDDIProxy();
proxy.setInquiryURL("https://uddi.example.com/inquire");
proxy.setPublishURL("https://uddi.example.com/publish");
// 2. 驗證 (發布需授權)
AuthToken token = proxy.get_authToken("user", "password");
// 3. 查詢服務
FindQualifiers fq = new FindQualifiers();
fq.addFindQualifier(FindQualifiers.APPROXIMATE_MATCH);
FindService fs = proxy.find_service(token.getAuthTokenString(), null, fq, null, null, 0);
// 4. 發布業務與服務
BusinessEntity be = new BusinessEntity();
// ... 設定名稱、描述、聯繫資訊 ...
BusinessEntityDetail bed = proxy.save_business(token.getAuthTokenString(), be);
// 5. 取得服務存取點進行調用
BindingTemplate bt = ... // 從查詢結果取得
String accessPoint = bt.getAccessPoint().getText(); // 端點 URL
// 使用 JAX-RPC / JAX-WS 調用實際 Web Service
JSR 93 (JAXR - Java API for XML Registries) 提供統一的註冊中心存取 API,支援 UDDI、ebXML 等多種後端。新專案建議直接使用 JAXR 實作 (如 Apache jUDDI 內建 JAXR Provider),UDDI4J 逐漸轉為維護模式。