⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jrfcserv.java

📁 SAP这个系统的一个转换器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    if(j == 0)
                    {
                        pos = 40;
                    } else
                    {
                        pos = 0;
                        field = "";
                    }
                    for(int k = pos; k < tab.getField(j).getLength(); k++)
                        field = field + String.valueOf(k % 10);

                    tab.setValue(field, j);
                }

            }

        }

        IRepository rep;

        JRfcServer(Properties serverP, IRepository repository)
        {
            super(serverP, repository);
            rep = repository;
        }

        JRfcServer(String serverS[], IRepository repository)
        {
            super(serverS, repository);
            rep = repository;
        }
    }


    public JRfcServ()
    {
    }

    public static void main(String args[])
    {
        if(args.length == 0)
            usage();
        else
            try
            {
                for(int i = 0; i < args.length; i++)
                    if(args[i].startsWith("-t"))
                    {
                        props.setProperty("jco.server.trace", "true");
                        int jco_trc_level = Integer.parseInt(args[i].substring(2));
                        JCO.setTracePath(".");
                        JCO.setTraceLevel(jco_trc_level);
                    } else
                    if(args[i].startsWith("-a"))
                        props.setProperty("jco.server.progid", args[i].substring(2));
                    else
                    if(args[i].startsWith("-g"))
                        props.setProperty("jco.server.gwhost", args[i].substring(2));
                    else
                    if(args[i].startsWith("-x"))
                        props.setProperty("jco.server.gwserv", args[i].substring(2));
                    else
                    if(args[i].startsWith("-F"))
                        props.setProperty("jco.server.profile_name", args[i].substring(2));
                    else
                    if(args[i].startsWith("-L"))
                        props.setProperty("jco.server.snc_lib", args[i].substring(2));
                    else
                    if(args[i].startsWith("-S"))
                        props.setProperty("jco.server.snc_myname", args[i].substring(2));
                    else
                    if(args[i].startsWith("-Q"))
                        props.setProperty("jco.server.snc_qop", args[i].substring(2));
                    else
                    if(args[i].startsWith("-u"))
                        props.setProperty("jco.server.unicode", "true");
                    else
                    if(args[i].startsWith("-C"))
                    {
                        props.setProperty("jco.client.client", args[i].substring(2));
                        startedServ = true;
                    } else
                    if(args[i].startsWith("-U"))
                        props.setProperty("jco.client.user", args[i].substring(2));
                    else
                    if(args[i].startsWith("-P"))
                        props.setProperty("jco.client.passwd", args[i].substring(2));
                    else
                    if(args[i].startsWith("-H"))
                        props.setProperty("jco.client.ashost", args[i].substring(2));
                    else
                    if(args[i].startsWith("-N"))
                        props.setProperty("jco.client.sysnr", args[i].substring(2));

                if(startedServ)
                    startServer(args, props);
                else
                    startServer(props, getClientProperties(props));
            }
            catch(Exception ex)
            {
                RfcTest.displayException(ex);
                usage();
            }
    }

    private static Properties getClientProperties(Properties serverProps)
    {
        Properties props = RfcTest.loadProperties("jrfcserv.props");
        RfcTest.out.println("Please enter properties for repository connections: ");
        for(String answer = "n"; !answer.startsWith("y") && !answer.startsWith("Y"); answer = RfcTest.ask("start with properties (y/n)", "y"))
        {
            props.setProperty("jco.client.client", RfcTest.ask("client", props.getProperty("jco.client.client", "000")));
            props.setProperty("jco.client.user", RfcTest.ask("user", props.getProperty("jco.client.user", "")));
            props.setProperty("jco.client.passwd", RfcTest.ask("password", "XXXXXX"));
            props.setProperty("jco.client.ashost", RfcTest.ask("application host", props.getProperty("jco.client.ashost", serverProps.getProperty("jco.server.gwhost", ""))));
            props.setProperty("jco.client.sysnr", RfcTest.ask("system number", props.getProperty("jco.client.sysnr", serverProps.getProperty("jco.server.gwserv", "gwserv").substring(6))));
        }

        RfcTest.storeProperties(props, "jrfcserv.props", "client properties");
        return props;
    }

    private static void startServer(Properties serverP, Properties repositoryP)
    {
        RfcTest.out.println("Start server");
        RfcTest.displayProperties(serverP);
        RfcTest.displayProperties(repositoryP);
        JRfcServ listener = new JRfcServ();
        JCO.addServerStateChangedListener(listener);
        JCO.addServerExceptionListener(listener);
        JCO.addServerErrorListener(listener);
        com.sap.mw.jco.JCO.Client c = JCO.createClient(repositoryP);
        c.connect();
        c.ping();
        JRfcServer server = new JRfcServer(serverP, JCO.createRepository("REP", c));
        server.start();
    }

    private static void startServer(String serverStmp[], Properties repositoryP)
    {
        RfcTest.out.println("Start server");
        JRfcServ listener = new JRfcServ();
        JCO.addServerStateChangedListener(listener);
        JCO.addServerExceptionListener(listener);
        JCO.addServerErrorListener(listener);
        com.sap.mw.jco.JCO.Client c = JCO.createClient(repositoryP);
        c.connect();
        c.ping();
        String serverS[] = new String[serverStmp.length - 5];
        for(int i = 0; i < serverS.length; i++)
            serverS[i] = serverStmp[i + 5];

        JRfcServer server = new JRfcServer(serverS, JCO.createRepository("REP", c));
        server.start();
    }

    public void serverStateChangeOccurred(com.sap.mw.jco.JCO.Server server, int old_state, int new_state)
    {
        if(server.getThread() != null)
        {
            RfcTest.out.println(server.getThread().getName() + "[handle: " + server.getConnectionHandle() + "] changed state from " + RfcTest.stateToString(old_state) + " to " + RfcTest.stateToString(new_state));
            if(startedServ && (old_state & 4) != 0 && (new_state & 4) == 0)
                server.stop();
        } else
        {
            RfcTest.out.println(Thread.currentThread().getName() + " Server thread is null");
        }
    }

    public void serverExceptionOccurred(com.sap.mw.jco.JCO.Server server, Exception ex)
    {
        RfcTest.out.println("Exception in server " + server.getProgID() + " [handle: " + server.getConnectionHandle() + "]");
        RfcTest.displayException(ex);
    }

    public void serverErrorOccurred(com.sap.mw.jco.JCO.Server server, Error ex)
    {
        RfcTest.out.println("Error in server " + server.getProgID() + " [handle: " + server.getConnectionHandle() + "]");
        RfcTest.displayException(ex);
    }

    private static void usage()
    {
        RfcTest.out.println("\nSyntax for start and run in registered mode or via fastrfc:");
        RfcTest.out.println("        JRfcServ [options]");
        RfcTest.out.println();
        RfcTest.out.println("options = -a<program ID>                   e.g.  <own host name>.srfcserv");
        RfcTest.out.println("        = -g<SAP gateway host name>        e.g.  hs0311");
        RfcTest.out.println("        = -x<SAP gateway service>          e.g.  sapgw53");
        RfcTest.out.println("        = -F<profile name>                 e.g.  C:\\\\profile\\\\B6Q_D25_PWDF0633");
        RfcTest.out.println("        = -u                               only for unicode server");
        RfcTest.out.println("        = -t<Level>    RFC/JCo-Trace on    e.g.  5");
        RfcTest.out.println("        = -L<SNC library, optional>");
        RfcTest.out.println("        = -S<SNC myname, optional>");
        RfcTest.out.println("        = -Q<SNC quality of protection, optional>");
        RfcTest.out.println();
        RfcTest.out.println("Option L, S and Q can be set if working with SNC (Secure Network");
        RfcTest.out.println("Communication). In order to register a server at a gateway use");
        RfcTest.out.println("options a, g and x. For fastrfc apply the option profile_name.");
        RfcTest.out.println();
    }

    private static Properties props = new Properties();
    private static boolean startedServ = false;
    private static IRepository repository;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -