java - 从 java 程序访问 WSO2 治理注册表

标签 java web service wso2 wso2-governance-registry

平台详细信息:

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

问题陈述:

我正在尝试在 WSO2 注册表中发布我的 Web 服务。发布我的注册表效果很好。

但是,我如何访问使用 java 代码在注册表中发布的现有 Web 服务。

最佳答案

您可以从下面的java客户端获取用户注册表的实例。 一旦获取了注册表实例,我们就可以访问注册表中的任何服务。

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);

    }


}

关于java - 从 java 程序访问 WSO2 治理注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26967309/

相关文章:

ruby-on-rails - Ruby On Rails - 在 Controller 中使用关注点

javascript - 如何加载和处理服务器上的元数据?

java - Context.startForegroundService() 然后没有调用 Service.startForeground() 问题

java - 在 Java 中使用 String 格式化十进制值

java - JPA - 定义多列唯一约束

Tomcat 在不同的机器上表现不同

JUnit 测试未启动 Android 服务

android - 我们如何重新启动服务?

Java : Equals() does not compare right

java - 想要 Android 中的程序方法