平台详细信息:
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/