2014-11-17 4 views
1

플랫폼 세부 정보 :자바 프로그램에서 WSO2의 governence 레지스트리에 접근

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

문제 문 : 나는 WSO2 레지스트리에 내 웹 서비스를 게시하려고

. 내 레지스트리 게시 잘 작동합니다.

그러나 Java 코드를 사용하여 레지스트리에 게시 된 기존 웹 서비스에 어떻게 액세스합니까?

답변

0

아래 자바 클라이언트에서 사용자 레지스트리의 인스턴스를 가져올 수 있습니다. 일단 레지스트리 인스턴스가 획득되면 레지스트리의 모든 서비스에 액세스 할 수 있습니다.

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

    } 


}