Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OSB ALSBConfiguration MBean使用java导入配置_Java_Oracle_Osb_Wlst_Alsb - Fatal编程技术网

OSB ALSBConfiguration MBean使用java导入配置

OSB ALSBConfiguration MBean使用java导入配置,java,oracle,osb,wlst,alsb,Java,Oracle,Osb,Wlst,Alsb,我正在尝试使用java在OSB中导入配置sbconfig.jar以进行自动化测试。在此之前,我用java实现了FindAndReplace操作。 但是,在从同一篇文章导入配置的情况下,当我运行呈现的代码时,我得到一个错误 我想做什么 连接到OSB(Oracle服务总线11.1) 读取文件 创建会话 导入准备好的文件 激活会话 关于第四项,我有一个错误: Cannot import to deployed configuration 也许有人已经实现了这样的事情 我将非常感谢你的帮助 packa

我正在尝试使用java在OSB中导入配置sbconfig.jar以进行自动化测试。在此之前,我用java实现了FindAndReplace操作。 但是,在从同一篇文章导入配置的情况下,当我运行呈现的代码时,我得到一个错误

我想做什么

  • 连接到OSB(Oracle服务总线11.1)
  • 读取文件
  • 创建会话
  • 导入准备好的文件
  • 激活会话
  • 关于第四项,我有一个错误:

    Cannot import to deployed configuration
    
    也许有人已经实现了这样的事情

    我将非常感谢你的帮助

    package update.configuration.osb;
    
    import com.bea.wli.config.Ref;
    import com.bea.wli.config.customization.FindAndReplaceCustomization;
    import com.bea.wli.config.env.EnvValueQuery;
    import com.bea.wli.config.importexport.ImportResult;
    import com.bea.wli.config.resource.Diagnostics;
    import com.bea.wli.sb.management.configuration.*;
    import com.bea.wli.sb.util.EnvValueTypes;
    import com.bea.wli.config.customization.Customization;
    
    import java.io.*;
    import java.net.MalformedURLException;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Hashtable;
    import java.util.List;
    
    import javax.management.*;
    import javax.management.remote.*;
    import javax.naming.Context;
    
    import weblogic.management.jmx.MBeanServerInvocationHandler;
    import weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean;
    import com.bea.wli.sb.management.importexport.ALSBJarInfo;
    import com.bea.wli.sb.management.importexport.ALSBImportPlan;
    
    import java.util.Map;
    
    
    public class OSBConfigUpdateNew {
        private static JMXConnector initConnection(String hostname, int port,
                                                   String username, String password) throws IOException,
                MalformedURLException {
            JMXServiceURL serviceURL = new JMXServiceURL("t3", hostname, port,
                    "/jndi/" + DomainRuntimeServiceMBean.MBEANSERVER_JNDI_NAME);
            Hashtable<String, String> h = new Hashtable<String, String>();
            h.put(Context.SECURITY_PRINCIPAL, username);
            h.put(Context.SECURITY_CREDENTIALS, password);
            h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,
                    "weblogic.management.remote");
            return JMXConnectorFactory.connect(serviceURL, h);
        }
    
        static private void simpleImportExport(String importFileName, String host, int port,
                                               String username, String password) {
            JMXConnector conn = null;
            SessionManagementMBean sm = null;
    
            File importFile = new File(importFileName);
            byte[] bytes = readBytes(importFile);
    
            String sessionName = "newsession";
            String statusmsg = "";
            try {
                conn = initConnection(host, port, username, password);
                MBeanServerConnection mbconn = conn.getMBeanServerConnection();
                DomainRuntimeServiceMBean domainService = (DomainRuntimeServiceMBean) MBeanServerInvocationHandler
                        .newProxyInstance(mbconn, new ObjectName(
                                DomainRuntimeServiceMBean.OBJECT_NAME));
                sm = (SessionManagementMBean) domainService.findService(
                        SessionManagementMBean.NAME, SessionManagementMBean.TYPE,
                        null);
                sm.createSession(sessionName);
                ALSBConfigurationMBean alsbSession = getConfigMBean(sessionName, conn);
    //            ALSBConfigurationMBean alsbSession = (ALSBConfigurationMBean) domainService.findService(ALSBConfigurationMBean.NAME + "." + "newsession", ALSBConfigurationMBean.TYPE, null);
    
            try {
                alsbSession.uploadJarFile(bytes);
    
                ALSBJarInfo jarInfo = alsbSession.getImportJarInfo();
                ALSBImportPlan importPlan = jarInfo.getDefaultImportPlan();
    
                ImportResult result = alsbSession.importUploaded(importPlan);
    
                if (result.getImported().size() > 0) {
                    System.out.println("The following resources have been successfully imported.");
                    for (Ref ref : result.getImported()) {
                        System.out.println("\t" + ref);
                    }
                }
    
                if (result.getFailed().size() > 0) {
                    System.out.println("The following resources have failed to be imported.");
                    for (Map.Entry<Ref, Diagnostics> e : result.getFailed().entrySet()) {
                        Ref ref = e.getKey();
                        Diagnostics d = e.getValue();
                        System.out.println("\t" + ref + ". reason: " + d);
                    }
                    System.out.println("Discarding the session.");
                    sm.discardSession(sessionName);
                    System.exit(1);
    
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
            sm.activateSession(sessionName, "description");
    
            ALSBConfigurationMBean alsbcore = getConfigMBean(null, conn);
                byte[] contentsProj = alsbcore.exportProjects(Collections.singleton(Ref.makeProjectRef("Project")), null);
            } catch (Exception e) {
                e.printStackTrace();
            }
            } catch (Exception ex) {
                if (null != sm) {
                    try {
                        sm.discardSession(sessionName);
                    } catch (Exception e) {
                        System.out.println("Able to discard the session");
                    }
                }
                statusmsg = "Not able to perform the operation";
                ex.printStackTrace();
            } finally {
                if (null != conn)
                    try {
                        conn.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
            }
        }
    
        private static ALSBConfigurationMBean getConfigMBean(String sessionName, JMXConnector conn) throws Exception {
            MBeanServerConnection mbconn = conn.getMBeanServerConnection();
            DomainRuntimeServiceMBean domainService =
                    (DomainRuntimeServiceMBean) MBeanServerInvocationHandler.newProxyInstance(
                            mbconn, new ObjectName(DomainRuntimeServiceMBean.OBJECT_NAME));
            return (ALSBConfigurationMBean) domainService.findService(
                    ALSBConfigurationMBean.NAME,
                    ALSBConfigurationMBean.TYPE, null);
        }
    
        private static byte[] readBytes(File importFile) {
            ByteArrayOutputStream ous = null;
            InputStream ios = null;
            try {
                byte[] buffer = new byte[4096];
                ous = new ByteArrayOutputStream();
                ios = new FileInputStream(importFile);
                int read = 0;
                while ((read = ios.read(buffer)) != -1)
                    ous.write(buffer, 0, read);
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (ous != null)
                        ous.close();
                } catch (IOException e) {
                }
                try {
                    if (ios != null)
                        ios.close();
                } catch (IOException e) {
                }
            }
            return ous.toByteArray();
        }    
    
    //  private static Ref constructRef(String refType, String serviceuri) {
    //      Ref ref = null;
    //      String[] uriData = serviceuri.split("/");
    //      ref = new Ref(refType, uriData);
    //      return ref;
    //  }
    
        public static void main(String[] args) {
            simpleImportExport("C:\\sbconfig.jar", "127.0.0.1",
                    7001, "user", "password");
        }
    }
    
    package update.configuration.osb;
    导入com.bea.wli.config.Ref;
    导入com.bea.wli.config.customization.findandReplaceComization;
    导入com.bea.wli.config.env.EnvValueQuery;
    导入com.bea.wli.config.importexport.ImportResult;
    导入com.bea.wli.config.resource.Diagnostics;
    导入com.bea.wli.sb.management.configuration.*;
    导入com.bea.wli.sb.util.EnvValueTypes;
    导入com.bea.wli.config.customization.customization;
    导入java.io.*;
    导入java.net.MalformedURLException;
    导入java.util.ArrayList;
    导入java.util.Collections;
    导入java.util.Hashtable;
    导入java.util.List;
    导入javax.management.*;
    导入javax.management.remote.*;
    导入javax.naming.Context;
    导入weblogic.management.jmx.MBeanServerInvocationHandler;
    导入weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceBean;
    导入com.bea.wli.sb.management.importexport.ALSBJarInfo;
    导入com.bea.wli.sb.management.importexport.ALSBImportPlan;
    导入java.util.Map;
    公共类OSBConfiguUpdateNew{
    专用静态JMXConnector initConnection(字符串主机名、int端口、,
    字符串用户名、字符串密码)引发IOException,
    畸形感觉{
    JMXServiceURL serviceURL=新的JMXServiceURL(“t3”,主机名,端口,
    “/jndi/”+domainRuntimeServiceBean.MBEANSERVER\u jndi\u NAME);
    Hashtable h=新的Hashtable();
    h、 put(Context.SECURITY\u主体,用户名);
    h、 put(Context.SECURITY\u凭证、密码);
    h、 放置(JMXConnectorFactory.PROTOCOL_PROVIDER_包,
    “weblogic.management.remote”);
    返回JMXConnectorFactory.connect(serviceURL,h);
    }
    静态私有void simpleImportExport(字符串importFileName、字符串主机、int端口、,
    字符串用户名、字符串密码){
    JMXConnector conn=null;
    SessionManagementMBean sm=null;
    文件导入文件=新文件(导入文件名);
    字节[]字节=读取字节(导入文件);
    字符串sessionName=“newsession”;
    字符串statusmsg=“”;
    试一试{
    conn=initConnection(主机、端口、用户名、密码);
    MBeanServerConnection mbconn=conn.getMBeanServerConnection();
    DomainRuntimeServiceBean domainService=(DomainRuntimeServiceBean)MBeanServerInvocationHandler
    .newProxyInstance(mbconn,新对象名(
    DomainRuntimeServiceBean.OBJECT_NAME));
    sm=(SessionManagementMBean)domainService.findService(
    SessionManagementMBean.NAME、SessionManagementMBean.TYPE、,
    无效);
    sm.createSession(sessionName);
    AlsbConfiguration MBean alsbSession=getConfigMBean(会话名称,conn);
    //AlsbConfiguration MBean alsbSession=(AlsbConfiguration MBean)domainService.findService(AlsbConfiguration MBean.NAME++“+”newsession”,AlsbConfiguration MBean.TYPE,null);
    试一试{
    上传文件(字节);
    ALSBJarInfo=alsbSession.getImportJarInfo();
    ALSBImportPlan importPlan=jarInfo.getDefaultImportPlan();
    ImportResult结果=alsbSession.importUploaded(importPlan);
    如果(result.getImported().size()>0){
    System.out.println(“以下资源已成功导入”);
    for(Ref:result.getImported()){
    System.out.println(“\t”+ref);
    }
    }
    如果(result.getFailed().size()>0){
    System.out.println(“以下资源导入失败”);
    对于(Map.Entry e:result.getFailed().entrySet()){
    Ref=e.getKey();
    诊断d=e.getValue();
    System.out.println(“\t”+ref+”。原因:“+d”);
    }
    System.out.println(“丢弃会话”);
    sm.Session(会话名称);
    系统出口(1);
    }
    }捕获(例外e){
    e、 printStackTrace();
    }
    试一试{
    sm.激活会话(会话名称,“描述”);
    ALSBConfiguration MBean alsbcore=getConfigMBean(空,conn);
    字节[]contentsProj=alsbcore.exportProjects(Collections.singleton(Ref.makeProjectRef(“项目”)),null;
    }捕获(例外e){
    e、 printStackTrace();
    }
    }捕获(例外情况除外){
    如果(空!=sm){
    试一试{
    sm.Session(会话名称);
    }捕获(例外e){
    System.out.println(“能够放弃会话”);
    }
    }
    statusmsg=“无法执行该操作”;
    例如printStackTrace();
    }最后{
    如果(空!=conn)
    试一试{
    康涅狄格州关闭();
    }捕获(例外e){
    e、 printStackTrace();
    }
    }
    }
    私有静态ALSBConfiguration MBean getConfigMBean(字符串sessionName,JMXConnector conn)引发异常{
    MBeanServerConnection mbconn=conn.getMBeanServerConnection();
    DomainRuntimeServiceBean域服务=