<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/xsl/rss.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:ppp="http://blog.sohu.com/rss/module/ppp/"
	>

	<channel>
		<title>懒猫</title>
		<link>http://lanmaohome.blog.sohu.com/</link>
		<description><![CDATA[懒猫猫的网上小窝]]></description>
		<pubDate>Tue, 7 Aug 2007 17:02:06 +0800</pubDate>
		<generator>搜狐博客</generator>
		<ppp:ebi>8026929792</ppp:ebi>
		<image>
			<title>http://blog.sohu.com</title>
			<url>http://js.pp.sohu.com/ppp/blog/images/common/logo_150_60.gif</url>
			<link>http://blog.sohu.com/</link>
			<width>100</width>
			<height>43</height>
			<description>搜狐博客</description>
		</image>
		<item>
			<title>解压指定目录下的ear、war 、jar 文件</title>
			<link>http://lanmaohome.blog.sohu.com/58813185.html</link>
			<comments>http://lanmaohome.blog.sohu.com/58813185.html#comment</comments>
			<dc:creator>懒猫</dc:creator>
			<pubDate>Tue, 7 Aug 2007 17:02:06 +0800</pubDate>
			<category>Java</category>
			<guid>http://lanmaohome.blog.sohu.com/58813185.html</guid>
			<description><![CDATA[<p>前两天写了个小程序,把服务器上的所有ear、war还有jar文件都解包。难点在于要把ear包里的jar或者war都解开，而且ear里的war里面还可能包含jar包。废了点功夫，终于写出来了。</p>
<p>import java.io.*;<br />import java.util.zip.*;<br />import java.util.*;</p>
<p>public class UnZipFile {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; public void execUnZip(String filePath,int level){<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; File dir= new File(filePath);<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; File[ ] entries = dir.listFiles();<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int enlen = entries.length;<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (int j=0;j&lt;enlen;j++){<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; if(entries[j].isDirectory()) {<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //System.out.println(entries[j].getName());<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File subDir= new File(filePath+&quot;\\&quot;+entries[j].getName());<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File[] subDirEntries= subDir.listFiles();<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int k=0;k&lt;subDirEntries.length;k++){<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(subDirEntries[k].isDirectory()) {<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //System.out.println(subDirEntries[k].getName());<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File thirdDir= new File(filePath+&quot;\\&quot;+entries[j].getName()+&quot;\\&quot;+subDirEntries[k].getName());<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File[] thirdDirEntries= thirdDir.listFiles();<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int z=0;z&lt;thirdDirEntries.length;z++){<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (thirdDirEntries[z].isDirectory()){<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //System.out.println(thirdDirEntries[z].getName());<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((thirdDirEntries[z].getName().indexOf(&quot;.jar&quot;) &gt;0) || (thirdDirEntries[z].getName().indexOf(&quot;.war&quot;) &gt;0)){<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zipExtracting(filePath+&quot;\\&quot;+entries[j].getName()+&quot;\\&quot;+subDirEntries[k].getName(), thirdDirEntries[z].getName());<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (level==2){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((subDirEntries[k].getName().indexOf(&quot;.jar&quot;) &gt;0) || (subDirEntries[k].getName().indexOf(&quot;.war&quot;) &gt;0)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zipExtracting(filePath+&quot;\\&quot;+entries[j].getName(), subDirEntries[k].getName());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }else{<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (level==1)<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zipExtracting(filePath, entries[j].getName());<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; public String mkDir(String filepath,String zipFileName,String filename){<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;//System.out.println(filename);<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;String[] folder=filename.split(&quot;/&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;String foldername=filepath+&quot;\\&quot;+zipFileName;<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;new File(foldername).mkdirs();<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;for (int i=0;i&lt;folder.length-1;i++){<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;foldername=foldername+&quot;\\&quot;+folder[i];<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;new File(foldername).mkdirs();<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;return foldername;<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; public void zipExtracting(String filePath, String zipFile)<br />&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int BUFFER = 2048;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedOutputStream dest = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedInputStream is = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ZipEntry entry = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ZipFile zipfile = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enumeration enu = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zipfile = new ZipFile(filePath+&quot;\\&quot;+zipFile);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String zipFileName=zipFile.substring(0,zipFile.indexOf(&quot;.&quot;));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enu = zipfile.entries();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (enu.hasMoreElements()){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entry = (ZipEntry) enu.nextElement();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //System.out.println(&quot;extracting file name is &quot; + entry.getName());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String filename=entry.getName();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int location= filename.lastIndexOf(&quot;/&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String foldername=&quot;&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (entry.isDirectory()){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;foldername=mkDir(filePath,zipFileName,filename);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;if (location &gt; 0){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; foldername=mkDir(filePath,zipFileName,filename);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is = new BufferedInputStream(zipfile.getInputStream(entry));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int count;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte data[] = new byte[BUFFER];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileOutputStream fos ;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (location &gt; 0 ){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;fos= new FileOutputStream(foldername+&quot;\\&quot;+ filename.substring(location+1));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;fos= new FileOutputStream(filePath +&quot;\\&quot;+zipFileName+&quot;\\&quot;+ filename);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dest = new BufferedOutputStream(fos, BUFFER);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ((count = is.read(data, 0, BUFFER)) != -1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dest.write(data, 0, count);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dest.flush();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dest.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } finally<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dest != null)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dest.flush();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dest.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (is != null)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;/**<br />&nbsp; * @param args<br />&nbsp; */<br />&nbsp;public static void main(String[] args) {<br />&nbsp;&nbsp;UnZipFile unZipFile= new UnZipFile();<br />&nbsp;&nbsp;unZipFile.execUnZip(&quot;D:\\unzip&quot;,1);<br />&nbsp;&nbsp;unZipFile.execUnZip(&quot;D:\\unzip&quot;,2);<br />&nbsp;&nbsp;unZipFile.execUnZip(&quot;D:\\unzip&quot;,3);<br />&nbsp;}</p>
<p>}<br /></p>
<p>&nbsp;</p>]]></description>
		</item>
		    
		
		<item>
			<title>Apache2.0.59 与 weblogic8.1.6 集成</title>
			<link>http://lanmaohome.blog.sohu.com/56941546.html</link>
			<comments>http://lanmaohome.blog.sohu.com/56941546.html#comment</comments>
			<dc:creator>懒猫</dc:creator>
			<pubDate>Thu, 26 Jul 2007 15:58:48 +0800</pubDate>
			<category>Weblogic</category>
			<guid>http://lanmaohome.blog.sohu.com/56941546.html</guid>
			<description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 前一阵子给日本分公司搭建了一个weblogicUAT环境，因为使用的是weblogic自带的license，限制5Ip同时访问。所以要求给建一个apache server，因为没有多余的机器，要求就建立在同一台机器上。环境是winXPsp2、weblogic816。原来曾经在Solaris下给日本建过一个apache+weblogic环境，所以这次就照葫芦画瓢喽。先到<span><a href="http://www.apache.org/dist/httpd/">http://www.apache.org/dist/httpd/</a> 去找apache，发现全是需要编译的版本，顺着上面的连接找到<a href="http://httpd.apache.org/download.cgi">http://httpd.apache.org/download.cgi</a>。心想上次用的是2.0.59，这次就用最新的2.2吧。下载了<a href="http://apache.cs.utah.edu/httpd/binaries/win32/apache_2.2.4-win32-x86-no_ssl.msi">apache_2.2.4-win32-x86-no_ssl.msi</a>&nbsp;到服务器上，默认安装后，拷贝C:\bea\weblogic81\server\bin下的mod_wl_20.so到apachehome\modules目录下。这里还费了一点时间，weblogic8把windows和UNIX，linux系统的文件分在两个目录里面放。偶开始去<span>C:\bea\weblogic81\server\lib下面找了半天没找到，后来没法只好去看weblogic的电子文档。weblogic9好像与8不一样，它是把文件放在一个目录下，这样就少了很多麻烦。</span></span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp; 拷完这个文件后，就修改apache的配置文件httpd.conf.加上</span></span></p>
<p><span><span><b style="mso-bidi-font-weight: normal"><span>LoadModule weblogic_module modules/mod_wl_20.so</span></b></span></span></p>
<p><span><span><span>然后重新启动apache。结果一直报错，开始还以为是不是字符的问题，结果仔细检查后没发现什么，apache一直启动不了。去掉后就能启动，上网查了半天都没有解决，最后在某个角落里有弟兄说是不是weblogic8不支持apache2.2</span></span></span></p>
<p><span><span><span>真是一语惊醒梦中人阿。哈哈哈。连忙去查了以前写的文档，上次安装很顺利，用的是2.0.59。呵呵，又去重新down了个&nbsp;<a href="http://apache.cs.utah.edu/httpd/binaries/win32/apache_2.0.59-win32-x86-no_ssl.msi">apache_2.0.59-win32-x86-no_ssl.msi</a>。把2.2删掉，重新安装2.0.59。重新配置httpd.conf。呵呵，这次很顺利的成功了。ouye。继续增加了相关的过滤后，重启apache，运行ok。呵呵小小的自我陶醉一把。</span></span></span></p>]]></description>
		</item>
		    
		
		<item>
			<title>ftp远程获取整个目录</title>
			<link>http://lanmaohome.blog.sohu.com/55569019.html</link>
			<comments>http://lanmaohome.blog.sohu.com/55569019.html#comment</comments>
			<dc:creator>懒猫</dc:creator>
			<pubDate>Tue, 17 Jul 2007 14:39:20 +0800</pubDate>
			<category>Shell</category>
			<guid>http://lanmaohome.blog.sohu.com/55569019.html</guid>
			<description><![CDATA[有时候需要远程传输整个目录或者获取服务器上的整个目录<br />可以用ftp命令:<br />首先 在ftp下用 prompt 关闭交互<br />然后用 mput * 或者mget * 即可.<br />]]></description>
		</item>
		    
		
		<item>
			<title>最近用到的sed的单行脚本</title>
			<link>http://lanmaohome.blog.sohu.com/54973233.html</link>
			<comments>http://lanmaohome.blog.sohu.com/54973233.html#comment</comments>
			<dc:creator>懒猫</dc:creator>
			<pubDate>Fri, 13 Jul 2007 14:32:43 +0800</pubDate>
			<category>Shell</category>
			<guid>http://lanmaohome.blog.sohu.com/54973233.html</guid>
			<description><![CDATA[<p># 删除文件中开头的10行<br />sed '1,10d'</p>
<p># 删除文件中的最后一行<br />sed '$d'</p>
<p># 删除文件中的最后两行<br />sed 'N;$!P;$!D;$d'</p><p># 显示第2行<br />sed -n '2p' # 方法1<br />sed '2!d' # 方法2<br />sed '2q;d' # 方法3</p><br />]]></description>
		</item>
		    
		
		<item>
			<title>Shell除法并将结果用百分比显示</title>
			<link>http://lanmaohome.blog.sohu.com/54860729.html</link>
			<comments>http://lanmaohome.blog.sohu.com/54860729.html#comment</comments>
			<dc:creator>懒猫</dc:creator>
			<pubDate>Thu, 12 Jul 2007 17:34:18 +0800</pubDate>
			<category>Shell</category>
			<guid>http://lanmaohome.blog.sohu.com/54860729.html</guid>
			<description><![CDATA[要求：将a和b的商用百分比表示，同时保留两位小数<br />echo `echo &quot;scale=2;$a*100/$b&quot;|bc`%<br /><br />如果用<br />echo `echo &quot;scale=2;$a/$b&quot;|bc`%<br />则可能只会保留整数位，小数位就不会正确显示。<br /><br />如;<br />$ echo &quot;scale=2;1234/9856&quot;|bc<br />.12<br /><br />$&nbsp; echo &quot;scale=2;1234*100/9856&quot;|bc<br />12.52<br /><br />$ echo &quot;scale=2;1234/9856*100&quot;|bc<br />12.00<br />]]></description>
		</item>
		    
		
		<item>
			<title>Jython的字符串截取</title>
			<link>http://lanmaohome.blog.sohu.com/54843092.html</link>
			<comments>http://lanmaohome.blog.sohu.com/54843092.html#comment</comments>
			<dc:creator>懒猫</dc:creator>
			<pubDate>Thu, 12 Jul 2007 15:37:49 +0800</pubDate>
			<category>Weblogic</category>
			<guid>http://lanmaohome.blog.sohu.com/54843092.html</guid>
			<description><![CDATA[今天写WLSTshell的时候,需要对字符串进行截取,偶对Jython还是一个new comer,前两天看资料说Jython是java和Python的结合体,就想Java有函数substr,那想必Jython也应该有吧.于是就满世界去找,结果好像很失望啊.嘿嘿.只好改变搜索目标,终于在一般文档中发现了Jython的两个截取字符串的用法:<br />1. &gt;&gt;&gt; a = 'http://www.donews.net'<br />&gt;&gt;&gt; pos = a.find('://')<br />&gt;&gt;&gt; if pos &gt; -1:<br />...&nbsp;&nbsp;&nbsp;&nbsp; print a[:pos], a[pos+1:]<br />http www.donews.net<br /><br />2. &gt;&gt;&gt; a = 'http://www.donews.net'<br />&gt;&gt;&gt; left, sep, right = a.partition('://')<br />&gt;&gt;&gt; print left, right<br />http www.donews.net<br />文章中说方法2是Python提供的新功能，于是偶直接就在WLST的shell中使用，结果很遗憾，报错：<br />AttributeError: 'string' object has no attribute 'partition'<br />看来WLST的v64版本不支持该功能，偶只好用方法1了。很成功。呵呵，又学了一招<br /><br />]]></description>
		</item>
		    
		
		<item>
			<title>TypeError: __add__ nor __radd__ defined for these </title>
			<link>http://lanmaohome.blog.sohu.com/54841498.html</link>
			<comments>http://lanmaohome.blog.sohu.com/54841498.html#comment</comments>
			<dc:creator>懒猫</dc:creator>
			<pubDate>Thu, 12 Jul 2007 15:28:24 +0800</pubDate>
			<category>Weblogic</category>
			<guid>http://lanmaohome.blog.sohu.com/54841498.html</guid>
			<description><![CDATA[昨天在测试机上写的WLST脚本监控weblogic 的connection pool,今天把它上传到服务器上进行测试.原以为肯定没问题,修改了系统路径后测试发现报错:<br />File &quot;test.py&quot;, line 8, in ? <br />TypeError: __add__ nor __radd__ defined for these operands<br />顿时头有点大.仔细检查了遍代码:<br />urldict[svr.getName()]='t3://'+svr.getListenAddress()+str(svr.getListenPort())<br />感觉没啥问题,最初认为是不是又是路径的问题,于是重新配置了下路径,然后把它打了出来,没看出什么问题.上网搜搜,根据Error有文章说是加号两边的变量类型不对.可能是int+string,所以会报错.可偶已经在int前加了str了.难道是这个函数不起作用?<br />于是又把它改为svr.getListenPort().tostring,还是报相同错误.可偶把参数设为测试机就运行正常.于是开始怀疑是不是服务器上的设置与测试机不一样导致,把前面的输出打印了出来,发现adminserver的ListenAddress为None,会不会就是它造成的问题.上网查了下也有文章说如果字符串类型是None且不加判断的话会出这样的错误.呵呵,终于找到原因了.在shell里加了对None的判断,问题解决.<br />不过这样已经打乱今天的开发进度,也有收获,就是对Jython有了进一步的了解.<br />]]></description>
		</item>
		    
		
		<item>
			<title>bea提供的WLST文档</title>
			<link>http://lanmaohome.blog.sohu.com/54655530.html</link>
			<comments>http://lanmaohome.blog.sohu.com/54655530.html#comment</comments>
			<dc:creator>懒猫</dc:creator>
			<pubDate>Wed, 11 Jul 2007 11:01:41 +0800</pubDate>
			<category>Weblogic</category>
			<guid>http://lanmaohome.blog.sohu.com/54655530.html</guid>
			<description><![CDATA[<div>
            
<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/intro.html">简介和流程图</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/intro.html#wp1034331">
文档适用范围及受众</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/intro.html#wp1034390">
文档向导</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/intro.html#wp1035606">
相关文档</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/intro.html#wp1034451">
WLST 示例脚本</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/intro.html#wp1036727">
WLST 联机版示例脚本</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/intro.html#wp1036360">
WLST 脱机版示例脚本</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html">
使用 WebLogic 脚本工具</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1056953">
什么是 WebLogic 脚本工具？</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1077275">
WLST 可以做什么？</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1080413">
WLST 如何工作？</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1075454">
使用 WLST 联机版</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1075462">
使用 WLST 脱机版</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1080667">
操作模式</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1075564">
交互模式</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1075569">
脚本模式</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1075595">
嵌入式模式</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1078852">
使用 WLST 的主要步骤</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1056987">
设置环境</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1082463">
调用 WLST</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1078955">
输入 WLST 命令的要求</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1087997">
确保访问安全数据</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1087995">
运行脚本</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1077300">
调用 WLST 和运行脚本</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1074248">
从 WLST 运行脚本</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1077428">
将 WLST 导入为 Jython 模块</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1077922">
退出 WLST</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1085068">
从 Ant 中运行 WLST</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1086672">
wlst Ant 任务语法</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1085368">
示例</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1087365">
示例 1</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1087357">
示例 2</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1086398">
示例 3</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1086514">
获取帮助</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1081889">
记录用户交互</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1081491">
重定向 WLST 输出到文件</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1081489">
将现有配置转换为 WLST 脚本</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/using_WLST.html#wp1082301">
自定义 WLST</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/domains.html">
使用 WLST 脱机版创建和配置 WebLogic 域</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/domains.html#wp1001289">
创建域（脱机版）</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/domains.html#wp1001249">
更新现有域（脱机版）</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/domains.html#wp1014562">
浏览和访问有关配置 Bean 层次的信息（脱机版）</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/domains.html#wp1001256">
编辑域（脱机版）</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/domains.html#wp1013454">
创建域模板（脱机版）</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/domains.html#wp1014845">
导出诊断数据（脱机版）</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/domains.html#wp1013450">
按照示例脚本逐步操作：使用 WLST 脱机版创建域</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html">
导航和编辑 MBean</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1001187">
导航和询问 MBean</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1002608">
更改当前管理对象</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1002618">
导航并显示配置 MBean 示例</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1001225">
浏览运行时 MBean</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1002626">
导航并显示运行时 MBean 示例</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1001247">
在 MBean 层次中导航</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1005462">
查找 MBean</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1004687">
访问自定义 MBean</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1001254">
编辑配置 MBean</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1008412">
进行配置更改：主要步骤</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1007277">
管理配置更改</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/nav_edit.html#wp1001287">
跟踪配置更改</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/manage_servers.html">
管理服务器和服务器生命周期</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/manage_servers.html#wp1001389">
管理服务器生命周期</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/manage_servers.html#wp1005343">
启动和停止服务器</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/manage_servers.html#wp1005348">
不使用节点管理器来启动管理服务器</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/manage_servers.html#wp1005372">
使用节点管理器启动受管服务器和群集</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/manage_servers.html#wp1009240">
使用 WLST 和节点管理器来管理服务器</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/manage_servers.html#wp1005135">
监视服务器状态</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/manage_servers.html#wp1006833">
管理服务器状态</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html">
WebLogic Server 管理任务自动化</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1017970">
创建示例域：主要步骤</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1005395">
设置环境</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1019329">
创建域</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1004872">
创建 JDBC 资源</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1017316">
创建 JMS 资源</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1003579">
创建邮件资源</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1003498">
部署应用程序</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1018035">
创建和配置示例域的脚本</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1005564">
监视域运行时信息</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1008220">
访问域运行时信息：主要步骤</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1012495">
监视服务器状态的脚本</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1009351">
监视 JVM 的脚本</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1019913">
安全管理</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1021831">
创建用户</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1020896">
将用户添加到组</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1020728">
验证用户是否是组的成员</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1021465">
列出用户所属的组</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1021461">
列出安全领域中的用户和组</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1019971">
更改密码</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1020775">
保护安全领域中的用户帐户</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1020789">
设置连续无效登录尝试次数</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1020803">
解除对用户帐户的锁定</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/config_WLS.html#wp1019588">
配置日志记录</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/reference.html">
WLST 命令和变量参考</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/reference.html#wp1072584">
WSLT 命令类别概述</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/reference.html#wp1240027">
浏览命令</a></span></p><p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/reference.html#wp1003219">
WLST 变量参考</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/quick_ref.html">
WLST 联机版和脱机版命令概要</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/quick_ref.html#wp1000802">
WLST 命令概要，按命令的字母顺序排序</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/quick_ref.html#wp1016438">
WLST 联机版命令概要</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/quick_ref.html#wp1016439">
WLST 脱机版命令概要</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/dep_obs.html">
WLST 部署对象</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/dep_obs.html#wp1016532">
WLSTPlan 对象</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/dep_obs.html#wp1016576">
WLSTProgress 对象</a></span></p>

<p><span><a href="http://edocs.bea.com.cn/wls/docs92/config_scripting/wlst_faq.html">
常见问题解答：WLST</a></span></p>

        </div>]]></description>
		</item>
		    
		
		<item>
			<title>如何配置weblogic的WLST</title>
			<link>http://lanmaohome.blog.sohu.com/54530506.html</link>
			<comments>http://lanmaohome.blog.sohu.com/54530506.html#comment</comments>
			<dc:creator>懒猫</dc:creator>
			<pubDate>Tue, 10 Jul 2007 15:39:19 +0800</pubDate>
			<category>Weblogic</category>
			<guid>http://lanmaohome.blog.sohu.com/54530506.html</guid>
			<description><![CDATA[<font size="2"><span>&nbsp;&nbsp;&nbsp; WLST是一种命令行脚本工具，BEA公司在WebLogic Server 9.0版本中包含它。现在，该工具及所有的服务包（service 
packs）都可以从BEA公司的dev2dev站点下载得到，并在WebLogic Server 7.0和8.0下运行<br /><br /></span></font><font size="2"><span>&nbsp;&nbsp;&nbsp; WLST有两种版本，脱机版和联机版。脱机版用来在用户没有连接到任何一个WebLogic Server实例的情况下，通过与域文件和配置模板交互来配置域。该功能类似于WebLogic 
Server 9.0中反对的配置向导（Configuration Wizard）静寂模式脚本编程。联机版用来在用户连接到一个运行的WebLogic Server实例的情况下，更改配置工件或者监视运行时数据。现在两个版本作为两个独立的JAR包提供下载。<br />&nbsp;&nbsp;&nbsp; </span></font><font size="2"><span>WLST提供三种操作模式：交互模式、脚本模式和嵌入模式。在交互模式下，用户在命令提示符下键入命令并查看响应。这种模式对于学习脚本工具及其功能是有用的。</span></font><font size="2"><span>在脚本模式下，用户可以把许多脚本命令写在一个文件中，工具将该文件作为程序执行。</span></font><font size="2"><span>在嵌入模式下，用户把WLST解释器嵌入Java应用程序中<br /><br /></span></font><font size="2"><span>呵呵,上面都是摘抄的,下面进入正题,配置WLST:</span></font><br /><font size="2"><span>要想运行一个WLST很简单,就四个咚咚:<br />1. jdk,必须是weblogic正在使用的jdk<br />2. weblogic.jar,也必须是weblogic正在使用的那个jar<br />3. wlst.jar<br />4. jython.jar<br />前两个server上应该都有,后两个很简单去下载个就行.<br />先去下载WLST,地址:<br />https://codesamples.projects.dev2dev.bea.com/servlets/Scarab?id=S13<br />我下载的是</span></font><a href="https://codesamples.projects.dev2dev.bea.com/servlets/ScarabDownload/remcurreport/true/template/ViewAttachment.vm/attachid/3240/filename/wlst_v64.zip">wlst_v64.zip</a>.解压后把jython.jar,wlst.jar上传到服务器指定目录/bea/shell,然后新建一个shell：test.sh。内容如下：<br /><br />#!/bin/sh<br />JAVA_HOME=&quot;/bea/j2sdk1.4.2_14&quot;<br />WL_HOME=&quot;/bea/weblogic81&quot;<br />WLST_HOME=&quot;/bea/shell&quot;<br />WEBLOGIC_CLASSPATH=&quot;.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/rt.jar:${WL_HOME}/server/lib/weblogic.jar:<br />${WLST_HOME}/wlst.jar:${WLST_HOME}/jython.jar&quot;<br />export WEBLOGIC_CLASSPATH<br />CLASSPATH=&quot;${WEBLOGIC_CLASSPATH}:${JAVA_HOME}/bin&quot;<br />export CLASSPATH<br />export PATH=&quot;$CLASSPATH&quot;<br />java -version<br />java weblogic.WLST test.py<br /><br />这里采用的是脚本模式,其中test.py就是要执行的wlst脚本.<br />也可以采用交互模式,把最后一行 java weblogic.WLST test.py 改为<br />java weblogic.WLST<br />在出现提示符wls:/(offline)&gt; 后<br />执行execfile(&quot;test.py&quot;)<br /><br /><br /><br /><br /><font size="2"><span><br /></span></font>]]></description>
		</item>
		    
		
		<item>
			<title>用weblogic的WLST监控weblogic</title>
			<link>http://lanmaohome.blog.sohu.com/54525101.html</link>
			<comments>http://lanmaohome.blog.sohu.com/54525101.html#comment</comments>
			<dc:creator>懒猫</dc:creator>
			<pubDate>Tue, 10 Jul 2007 15:39:30 +0800</pubDate>
			<category>Weblogic</category>
			<guid>http://lanmaohome.blog.sohu.com/54525101.html</guid>
			<description><![CDATA[这两天要写一个工具，实时监控weblogic instance的相关参数，要求用工具WLST。它是weblogic提供的一个<span>jython接口，以前没用过，有些头疼。呵呵，上网查了下这方面的资料，比较少。以前写的监控工具主要通过java连接weblogic的JMX，这个有点不一样。是用shell在后台运行。昨天找了一天，开始没找到合适的example,找到的都是些怎么配置weblogic，建立connection的例子，没有监控方面的资料。幸好最后还是在weblogic的网站上找到篇脚本，文件格式是py的。呵呵，看了下内容，不错，比我想要的还多。按照相关文档把它上传到server，然后写了个shell配置环境变量，调用它，结果老是报错：<br />Initializing WebLogic Scripting Tool (WLST) ...<br /><br />Welcome to WebLogic Server Administration Scripting Shell<br /><br />Type help() for help on available commands<br /><br /><br />Connecting to weblogic server instance running at t3://192.168.200.82:9001 as username tedyw ...<br />Traceback (innermost last):<br />&nbsp; File &quot;PerfMonitor.py&quot;, line 4, in ?<br />&nbsp; File &quot;&lt;iostream&gt;&quot;, line 74, in connect<br />WLSTException: 'Error occured while performing connect : Unknown Error. Use dumpStack() to view the error stack trace'<br />晕。上网查了下，资料很少，只有寥寥一两篇。有的说是环境问题，主要是weblogic.jar与instance运行的不一样，仔细检查了遍，把多余的jar包去掉，问题仍存在。开始主要采用脚本模式直接调用，为了获取错误信息，转为交互模式，进入<br />wlst，然后再调用py文件，仍然报相同错。在py文件里加了几个输出，发现问题就出现connect这一句上。又查网络，有哥们说报相同错误，后来换成weblogic自带的jdk就好了，怀疑偶是不是没用weblogic的jdk所以报这个错误。又检查了server上的jdk发现没什么错误。这时候怀疑是不是偶shell里调用的jdk是系统默认jdk，而不是weblogic用的，加了个java -version输出，果然，是用系统默认jdk1.5，而weblogic用的是jdk1.4。重新配置了下path，嘿嘿。问题解决。<br /></span>]]></description>
		</item>
		    
		
	</channel>
</rss>
