UDDI 节点策略的管理
可以使用 UDDI 注册中心管理界面来管理影响 UDDI API 的策略。
UddiNode MBean 提供以下操作来管理会影响 UDDI API 行为的策略:
- getPolicyGroups
- getPolicyGroup
- getPolicy
- updatePolicy
- updatePolicies
在 WebSphere® Application Server 的样本中,UDDI 注册中心样本中的 ManagePoliciesSample 类演示这些操作。
- getPolicyGroups
- 将所有策略组的集合作为 PolicyGroup 对象返回。
- 调用 getPolicyGroups 操作:
List policyGroups = uddiNode.getPolicyGroups();
- 将每个集合成员强制转换为 PolicyGroup:
if (policyGroups != null) { for (Iterator iter = policyGroups.iterator(); iter.hasNext();) { PolicyGroup policyGroup = (PolicyGroup) iter.next(); System.out.println(policyGroup); } }
每个策略组都具有标识、名称和描述键,可以在样本软件包的 messages.properties 资源中找到)。虽然 PolicyGroup 类具有 getPolicies 方法,但 getPolicyGroups 操作返回的 PolicyGroup 对象不包含任何 Policy 对象。由于此行为,客户机可以确定已知的策略组和它们的标识,而不必在一个请求中检索整个策略集。要检索策略组中的策略,请使用 getPolicyGroup 操作。
- 调用 getPolicyGroups 操作:
- getPolicyGroup
- 返回具有所提供标识的 PolicyGroup 对象。
- 将策略组标识转换为字符串:
String groupId = Integer.toString(PolicyConstants.REG_APIS_GROUP);
- 调用 getPolicyGroup 操作:
PolicyGroup policyGroup = uddiNode.getPolicyGroup(groupId);
- 将策略组标识转换为字符串:
- getPolicy
- 返回指定标识的 Policy 对象。和配置属性一样,Policy 对象具有标识、名称和描述键、类型、值以及指示符(指定策略是否为只读或是否为节点初始化所需)。
- 将策略标识转换为字符串:
String policyId = Integer.toString( PolicyConstants.REG_AUTHORIZATION_FOR_INQUIRY_API);
- 调用 getPolicy 操作:
Policy policy = uddiNode.getPolicy(policyId);
- 将策略标识转换为字符串:
- updatePolicy
- 更新具有指定标识的 Policy 对象的值。PolicyConstants 中指定了可用的属性标识以及相应属性的用途的描述。尽管您可以在 Policy 对象中调用 setter 方法,但在 UDDI 节点中只有该值可更新。要更新策略,通常使用以下步骤:
- 创建 Policy 对象并设置它的标识:
Policy updatedPolicy = new Policy(); String policyId = Integer.toString(PolicyConstants.REG_SUPPORTS_UUID_KEYS); updatedPolicy.setId(policyId);
- 设置值:
updatedPolicy.setBooleanValue(true);
- 调用 updatePolicy 操作:
uddiNode.updatePolicy(updatedPolicy);
- 创建 Policy 对象并设置它的标识:
- updatePolicies
- 在单个请求中更新多个 Policy 对象。以适用于 updatePolicy 操作的相同方式来设置 Policy 对象。
- 将已更新的策略添加到列表:
List updatedPolicies = new ArrayList(); updatedPolicies.add(updatedPolicy1); updatedPolicies.add(updatedPolicy2);
- 调用 updatePolicies 操作:
uddiNode.updatePolicies(updatedPolicies);
- 将已更新的策略添加到列表: