wso2治理注册表无法通过注册表api获取服务路径

时间:2012-08-22 06:01:24

标签: registry wso2

我的代码是这样的:

public static void main(String[] args) throws MalformedURLException, RegistryException{
    System.setProperty("javax.net.ssl.trustStore", "D:/Program Files (x86)/keystores/MyCompany.jks");
    System.setProperty("javax.net.ssl.trustStorePassword", "4362976");
    System.setProperty("javax.net.ssl.trustStoreType","JKS");
    RemoteRegistry registry = new RemoteRegistry(new URL("https://localhost:9443/registry"), "admin", "admin");
    ServiceManager serviceManager = new ServiceManager(registry);
    Service[] services = serviceManager.findServices(new ServiceFilter() {
        public boolean matches(Service service) throws GovernanceException {
            String attributeVal = service.getAttribute("interface_transportProtocols");

            return (attributeVal != null && attributeVal.equals("HTTPS"));
        }
    });


    System.out.println(services[0].isActive());

}

并发生异常:

Exception in thread "main" org.wso2.carbon.governance.api.exception.GovernanceException: **A path is not associated with the artifact.**
    at org.wso2.carbon.governance.api.common.dataobjects.GovernanceArtifact.checkRegistryResourceAssociation(GovernanceArtifact.java:570)
    at org.wso2.carbon.governance.api.services.dataobjects.Service.isActive(Service.java:186)
    at org.wso2.carbon.registry.ws.client.sample.RemoteReg.main(RemoteReg.java:36)

有人可以帮忙吗?很多。

1 个答案:

答案 0 :(得分:0)

您用于初始化ServiceManager的注册表实例应该是治理注册表的实例。

例如:

RemoteRegistry registry = new RemoteRegistry(new URL("https://localhost:9443/registry"), "admin", "admin");

Registry govRegistry = GovernanceUtils.getGovernanceUserRegistry(registry,"admin");

ServiceManager serviceManager = new ServiceManager(govRegistry);