accessing WSO2 governence registry from a java program

473 Views Asked by At

Platform details:

IDE -> Eclipse kepler 
application server: Tomcat 
registry server : WSO2 governance registry 

Problem statement:

I am trying to publish my web service in WSO2 registry. Publishing my registry works fine.

But, how do i access existing web services those are published in registry using java code.

1

There are 1 best solutions below

0
Rajith Roshan On

You can get the instance of user registry from below java client. Once registry instance is acquired we can access any of the services in registry.

import org.apache.axiom.om.util.AXIOMUtil;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.wso2.carbon.base.ServerConfiguration;
import org.wso2.carbon.governance.api.generic.GenericArtifactManager;
import org.wso2.carbon.governance.api.generic.dataobjects.GenericArtifact;
import org.wso2.carbon.governance.api.util.GovernanceUtils;
import org.wso2.carbon.governance.client.WSRegistrySearchClient;
import org.wso2.carbon.registry.core.Registry;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.wso2.carbon.registry.core.pagination.PaginationContext;
import org.wso2.carbon.registry.core.session.UserRegistry;
import org.wso2.carbon.registry.ws.client.registry.WSRegistryServiceClient;

import javax.xml.stream.XMLStreamException;
import javax.xml.namespace.QName;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SearchClient {

    private static ConfigurationContext configContext = null;

    private static final String CARBON_HOME = ".." + File.separator + ".." +
        File.separator + ".." + File.separator + ".." + File.separator;
    private static final String axis2Repo = CARBON_HOME + File.separator + "repository" +
        File.separator + "deployment" + File.separator + "client";
    private static final String axis2Conf =
        ServerConfiguration.getInstance().getFirstProperty("Axis2Config.clientAxis2XmlLocation");
    private static final String username = "admin";
    private static final String password = "admin";
    private static final String serverURL = "https://localhost:9443/services/";

    private static WSRegistryServiceClient initialize() throws Exception {

    System.setProperty("javax.net.ssl.trustStore", CARBON_HOME + File.separator + "repository" +
            File.separator + "resources" + File.separator + "security" + File.separator +
            "wso2carbon.jks");
    System.setProperty("javax.net.ssl.trustStorePassword", "wso2carbon");
    System.setProperty("javax.net.ssl.trustStoreType", "JKS");
    System.setProperty("carbon.repo.write.mode", "true");
    configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(
            axis2Repo, axis2Conf);
    return new WSRegistryServiceClient(serverURL, username, password, configContext);
    }


    public static void main(String[] args) throws Exception {
    try {

        final Registry registry = initialize();
        Registry gov = GovernanceUtils.getGovernanceUserRegistry(registry, "admin");
        // Should be load the governance artifact.
        GovernanceUtils.loadGovernanceArtifacts((UserRegistry) gov);
        //Initialize the GenericArtifactManager
        GenericArtifactManager artifactManager =
                new GenericArtifactManager(gov, "service");
        // get all services
        GenericArtifact[] genericArtifacts = artifactManager.getAllArtifacts();


    } finally {
        PaginationContext.destroy();
    }
    System.exit(1);

    }


}