View | Details | Raw Unified | Return to bug 38216
Collapse All | Expand All

(-)E:/Programme/Eclipse 3.2.1 Yoxos/Workspace/org.apache.tomcat.5.5.x/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/JMXProxyServlet.java (+31 lines)
Lines 23-28 Link Here
23
import java.io.PrintWriter;
23
import java.io.PrintWriter;
24
import java.util.Iterator;
24
import java.util.Iterator;
25
import java.util.Set;
25
import java.util.Set;
26
27
import javax.management.MBeanOperationInfo;
28
import javax.management.MBeanParameterInfo;
26
import javax.management.MBeanServer;
29
import javax.management.MBeanServer;
27
import javax.management.ObjectName;
30
import javax.management.ObjectName;
28
import javax.management.MBeanInfo;
31
import javax.management.MBeanInfo;
Lines 98-108 Link Here
98
            getAttribute( writer, qry, name );
101
            getAttribute( writer, qry, name );
99
            return;
102
            return;
100
        }        
103
        }        
104
        qry=request.getParameter("invoke");
105
        if( qry!= null ) {
106
            String opName=request.getParameter("op");
107
            String[] valuesStr=request.getParameter("ps").split(",");
108
            invokeOperation( writer, qry, opName,valuesStr );
109
            return;
110
        }
101
        qry=request.getParameter("qry");
111
        qry=request.getParameter("qry");
102
        if( qry == null ) {
112
        if( qry == null ) {
103
            qry = "*:*";
113
            qry = "*:*";
104
        }
114
        }
Lines 191-196 Link Here
191
        }
200
        }
192
201
193
    }
202
    }
203
    
204
    public void invokeOperation(PrintWriter writer, String onameStr, String op, String[] valuesStr)
205
    {
206
        try {
207
            ObjectName oname=new ObjectName( onameStr );
208
            MBeanOperationInfo methodInfo = registry.getMethodInfo(oname,op);
209
            MBeanParameterInfo[] signature = methodInfo.getSignature();
210
            String[] signatureTypes = new String[signature.length];
211
            Object[] values = new Object[signature.length];
212
            for (int i = 0; i < signature.length; i++) {
213
            	MBeanParameterInfo pi = signature[i];
214
				signatureTypes[i] = pi.getType();
215
				values[i] = registry.convertValue(pi.getType(), valuesStr[i] );	
216
			}
217
            
218
            Object retVal = mBeanServer.invoke(oname,op,values,signatureTypes);
219
            writer.println("OK - Operation " + op + " returned " + retVal);
220
        } catch( Exception ex ) {
221
            writer.println("Error - " + ex.toString());
222
        }
223
    }
194
224
195
    public String escape(String value) {
225
    public String escape(String value) {
196
        // The only invalid char is \n
226
        // The only invalid char is \n

Return to bug 38216