-1

for ループで割り当てられた配列変数のすべての値を返す方法を知りたいです。

以下のメソッドでは、出力配列に値を代入しています。ここで、出力配列のすべての値を戻り引数として表示したいと考えています。スコープ レベルのため、最後の値を取得しています。

現在、スコープの問題により、最後の値を返すことができます。

public  static String[] getMBeanAppsStatus(String host, String port, 
                                          String container, String filter, 
                                          String usr, String pwd) {
    String Output[] = new String[3];
    int mbeanAppsIdx = 0;
    int LVar = mbeanAppsIdx;
    try {
        Object[] connections = 
            connectMethd(host, port, container, filter, usr, pwd);

        MBeanServerConnection serverConn = 
            (MBeanServerConnection)connections[0];
        System.out.println("serverConn from array variable in getMBeanAppsStatus" + 
                           serverConn);
        /* retrieve mbean apps matching given filter */
        ObjectName mbeanDomainName = new ObjectName(filter);
        Set mbeanAppNames = serverConn.queryNames(mbeanDomainName, null);
        /* pattern to extract mbean application names */
        Pattern mbeanAppPat = 
            Pattern.compile("name=", Pattern.CASE_INSENSITIVE);

        /* mbean application name */
        ObjectName mbeanApp = null;

        /* retrieve mbean apps count */
        Iterator i;
        for (i = mbeanAppNames.iterator(); i.hasNext(); ) {
            mbeanAppsIdx++;
            System.out.println("Populating MBean App #" + mbeanAppsIdx + 
                               "details...");
            /* retrieve mbean app name and status */
            mbeanApp = (ObjectName)i.next();
            String mbeanAppFQDN = mbeanApp.toString();
            String mbeanAppName = mbeanAppPat.split(mbeanAppFQDN)[1];
            Boolean mbeanAppRunning = 
                Boolean.valueOf(serverConn.getAttribute(mbeanApp, 
                                                        "Running").toString());
            String mbeanAppStatus = "DISABLED";
            if (mbeanAppRunning.booleanValue())
                mbeanAppStatus = "ENABLED";
            Output[0] = mbeanAppName;
            Output[1] = mbeanAppFQDN;
            Output[2] = mbeanAppStatus;
            System.out.println("getMBeanAppsStatus output " + 
                               "mbeanAppName " + mbeanAppName + 
                               " mbeanAppFQDN " + mbeanAppFQDN + 
                               " mbeanAppStatus : " + mbeanAppStatus);

        }

    } catch (MalformedObjectNameException e) {

        e.getStackTrace();
    } catch (InstanceNotFoundException e) {

        e.getStackTrace();
    } catch (AttributeNotFoundException e) {

        e.getStackTrace();
    } catch (ReflectionException e) {

        e.getStackTrace();
    } catch (MBeanException e) {
        e.getStackTrace();
    } catch (IOException ioe) {
        System.out.println(ioe);
    }

    System.out.println("getMBeanAppsStatus Output " + Output);
    return Output;
}

基本的に、上記のメソッドを J2EE Web サービスに変換しようとしています。Web サービスからの応答は、メソッドからの Output の戻り値になります。

私はそれを修正したい方法でここに2つの問題があります。

1)との値mbeanAppNameをコンマ区切りで連結し、 配列変数に代入したい。mbeanAppFQDNmbeanAppStatus,

2) 以前の値もすべて保持する配列結果を返します。

4

1 に答える 1