﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-zhyiwww </title><link>http://www.blogjava.net/zhyiwww/</link><description>用平实的笔，记录编程路上的点点滴滴………</description><language>zh-cn</language><lastBuildDate>Tue, 09 Feb 2010 22:19:31 GMT</lastBuildDate><pubDate>Tue, 09 Feb 2010 22:19:31 GMT</pubDate><ttl>60</ttl><item><title>数据库操作的异常捕捉和资源释放</title><link>http://www.blogjava.net/zhyiwww/archive/2010/02/09/312421.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Tue, 09 Feb 2010 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/02/09/312421.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/312421.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/02/09/312421.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/312421.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/312421.html</trackback:ping><description><![CDATA[通常的操作方法<br />
&nbsp;&nbsp;&nbsp; public List&lt;Category&gt; queryCategory(String queryStr) throws SQLException {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ArrayList&lt;Category&gt; catList = new ArrayList&lt;Category&gt;();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PreparedStatement pstmt = DBUtil.getConnection().prepareStatement(<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; queryStr);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (pstmt == null) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return catList;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ResultSet rst = pstmt.executeQuery();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while (rst.next()) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Category c = new Category();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; c.setCategoryId(rst.getInt("CATEGORY_ID"));<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;<em><strong>&nbsp; c.setCategoryName(rst.getString("CATEGORY_NAME"));</strong></em><br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; c.setCategoryParent(rst.getInt("PARENT_ID"));<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; catList.add(c);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rst.close();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pstmt.getConnection().close();<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return catList;<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
这种方式是不保险的方式，因为此处并不处理异常，但是不排除会发生异常。<br />
假设在黑体代码部分发生异常，那么下面的代码并不会执行，也就是说，rst,pstmt,con都不会关闭掉。<br />
所以导致的结果是这些资源得不到释放。<br />
<br />
解决的方法，就是在最后用finally去解决问题<br />
<br />
&nbsp;&nbsp;&nbsp; PreparedStatement pstmt = null;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ResultSet rst = null;<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pstmt = this.getPstmt(queryStr);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rst = pstmt.executeQuery();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while (rst.next()) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Category c = new Category();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; c.setCategoryId(rst.getInt("CATEGORY_ID"));<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; c.setCategoryName(rst.getString("CATEGORY_NAME"));<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; c.setCategoryParent(rst.getInt("PARENT_ID"));<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; catList.add(c);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (SQLException e) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; throw e;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }finally{<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(rst!=null){<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; rst.close();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(pstmt!=null){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pstmt.close();<br />
&nbsp;&nbsp;&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;&nbsp; if(this.getCon()!=null&amp;&amp;this.getCon().getAutoCommit()){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.getCon().close();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
<br />
这样，无论在那个地方发生了异常，都能让资源得到释放。<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/312421.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-02-09 15:19 <a href="http://www.blogjava.net/zhyiwww/archive/2010/02/09/312421.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中的短路</title><link>http://www.blogjava.net/zhyiwww/archive/2010/02/09/312400.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Tue, 09 Feb 2010 03:45:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/02/09/312400.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/312400.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/02/09/312400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/312400.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/312400.html</trackback:ping><description><![CDATA[<br />
<br />
if(<strong>this.con==null||this.con.isClosed()</strong>){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return this.con = DBUtil.getConnection();<br />
}<br />
<br />
这个判断实现判断con是否为空然后在判断isClosed,如果为空，就直接返回。不会载执行isClosed的判断。这就是短路。<br />
这就相当于<br />
<br />
if(this.con==null){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return this.con = DBUtil.getConnection();<br />
}<br />
<br />
if(this.con.isClosed()){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.con = DBUtil.getConnection();<br />
}<br />
<br />
并且上面的代码也不会发生NullPointerException 的异常。因为如果为空，就直接取得新的连接。<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/312400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-02-09 11:45 <a href="http://www.blogjava.net/zhyiwww/archive/2010/02/09/312400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript取得jsp context path</title><link>http://www.blogjava.net/zhyiwww/archive/2010/02/09/312387.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Tue, 09 Feb 2010 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/02/09/312387.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/312387.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/02/09/312387.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/312387.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/312387.html</trackback:ping><description><![CDATA[<br />
在jsp中获取context path或者basePath 是很容易的。在javascript中也可以获取，并且有的时候也很有必要。<br />
<br />
&nbsp;&nbsp;&nbsp; &lt;%<br />
String path = request.getContextPath();<br />
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<br />
%&gt;<br />
<br />
在单独的javascript中不能使用&lt;%= basePath%&gt;类似这样的java&nbsp; script所以，只能用javascript来获取此context path.<br />
可以用下面的代码来实现。<br />
<br />
var localObj = window.location;<br />
<br />
var contextPath = localObj.pathname.split("/")[1];<br />
<br />
var basePath = localObj.protocol+"//"+localObj.host+"/"+contextPath;<br />
<br />
var server_context=basePath;<br />
<br />
两种实现的方法用在不同的环境中。<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/312387.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-02-09 09:34 <a href="http://www.blogjava.net/zhyiwww/archive/2010/02/09/312387.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过setHeader设置下载时的文件名</title><link>http://www.blogjava.net/zhyiwww/archive/2010/02/08/312297.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Mon, 08 Feb 2010 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/02/08/312297.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/312297.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/02/08/312297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/312297.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/312297.html</trackback:ping><description><![CDATA[jsp或者sevlet中，如果response的contenttype是text/html,那么就直接通过浏览器就可以解析内容了。<br />
如果是application/x-excel,那么浏览器就不能自己解析了，就需要通过excel程序来打开，或者另存为文件了。<br />
问题是，如果你没有指定文件名的花，系统就会使用默认的文件名，并且没有后缀名。<br />
所以，为了能让用户下载的时候能够自动的保存一个带有后缀的文件，那么就需要用setHeader来指定文件名了。<br />
<br />
具体实现如下：<br />
<strong>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; response.setContentType("application/x-excel");</strong><br />
// &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; response.setContentType("application/vnd.ms-excel");<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; OutputStream&nbsp; out = response.getOutputStream();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ExcelBussiness eb = new ExcelBussiness();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />
<strong>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; response.setHeader("Content-Disposition", "attachment; filename="+"xxx.xls");</strong><br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; eb.responseExcel(out);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (RowsExceededException e) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // export excel exception<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (WriteException e) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // export excel exceptin<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
<br />
请参照粗体代码部分。<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/312297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-02-08 10:37 <a href="http://www.blogjava.net/zhyiwww/archive/2010/02/08/312297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java读取PDF文件</title><link>http://www.blogjava.net/zhyiwww/archive/2010/02/04/311944.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Thu, 04 Feb 2010 05:58:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/02/04/311944.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311944.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/02/04/311944.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311944.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311944.html</trackback:ping><description><![CDATA[用apache pdfbox来使现。<br />
<br />
需要用到两个包pdfbox和fontbox.可以从apache网站下载。<br />
<br />
读取PDF，我们只关心文字内容。核心代码如下：<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; InputStream in = blobObj.getBinaryStream();<br />
<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log.debug(in);<br />
<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; StringBuilder content = new StringBuilder(10000);<br />
<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PDFParser parser = new PDFParser(in);<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; parser.parse();<br />
<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log.debug(parser);<br />
<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; COSDocument doc = parser.getDocument();<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PDDocument pdDoc = PDDocument.load(in);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log.debug(pdDoc);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; COSDocument cosDoc = pdDoc.getDocument();<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PDFTextStripper stripper = new PDFTextStripper("UTF-8");<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; StringWriter wr =&nbsp; new StringWriter();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; stripper.writeText(pdDoc, wr);<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String content = stripper.getText(pdDoc);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log.debug(content);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pdDoc.close();<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311944.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-02-04 13:58 <a href="http://www.blogjava.net/zhyiwww/archive/2010/02/04/311944.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>因连接关闭引起的Blob操作异常</title><link>http://www.blogjava.net/zhyiwww/archive/2010/02/04/311893.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Thu, 04 Feb 2010 02:30:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/02/04/311893.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311893.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/02/04/311893.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311893.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311893.html</trackback:ping><description><![CDATA[<br />
<br />
我在处理结果集的时候，做了一个处理，把记录都处理成了Map的对象，而把结果集处理成了一个List对象。<br />
如下：<br />
public List&lt;Map&lt;String, Object&gt;&gt; toList() throws SQLException {<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; List&lt;Map&lt;String,Object&gt;&gt; recordsList = new ArrayList&lt;Map&lt;String, Object&gt;&gt;();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ResultSetMetaData meta = rst.getMetaData();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int colCnt = meta.getColumnCount();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while(rst.next()){<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; Map&lt;String,Object&gt; record = new HashMap&lt;String, Object&gt;();<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; for(int i=0;i&lt;colCnt;i++){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String colName = meta.getColumnName(i+1);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object colValue = rst.getObject(colName);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log.debug(colValue);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(colValue instanceof Blob){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log.debug("blob type");<br />
&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;&nbsp; record.put(colName, colValue);<br />
&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; <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; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; recordsList.add(record);<br />
&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; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return recordsList;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
<br />
之后，就关闭了resultset ,statement ,connection。然而在我从map对象里面取得blob对象时，总是报SQLException异常。经过调试，发现在blob.getBinaryStream()时发生异常。<br />
<br />
无奈之下做了一个试验。<br />
<br />
PreparedStatement stmt = null;<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ResultSet rst = null;<br />
//<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; stmt = this.con<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .prepareStatement("SELECT * FROM CCX_INFO_ARTICAL WHERE ARTICAL_ID=?");<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; stmt.setLong(1, articalId);<br />
//<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rst = stmt.executeQuery();<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(rst.next()){<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Blob b = rst.getBlob("ARTICAL_CONTENT");<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log.debug(b);<br />
////&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; InputStream in = b.getBinaryStream();<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; <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; <br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log.debug(in);<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
//<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (SQLException e) {<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; throw e;<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } finally {<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rst.close();<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (stmt != null) {<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; stmt.close();<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (this.con != null &amp;&amp; this.con.getAutoCommit()) {<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.con.close();<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
//<br />
<br />
此段代码可以顺利的无异常的执行。由此我推测认为，主要是因为 resultset ,connection关闭引起的。这说明，在执行了查询操作之后，<br />
我们虽然可以得到一个blob对象，但是实际的内容并没有读如内存，也就是说，并没有读如到blob对象中，而此blob对象也就相当于一个对数据库中blob字段操作的一个引用，所以，此时，如果想从blob字段中读取数据，还是需要数据库连接的。<br />
<br />
而上面的封装操作之后，数据库连接已经中断，所以，再读取数据时，就发生了异常。<br />
<br />
<br />
下面是Blob接口的说明，也许能给我们更好的解释.<br />
<br />
<br />
<dl><dt>
<pre>public interface <strong>Blob</strong></pre>
</dt></dl>
<p>
SQL <code>BLOB</code> 值在 Java<sup><font size="-2">TM</font></sup> 编程语言中的表示形式（映射关系）。SQL <code>BLOB</code> 是内置类型，它将 Binary Large Object 存储为数据库表的某一行中的一个列值。默认情况下，驱动程序使用 SQL <code>locator(BLOB)</code> 实现 <code>Blob</code>，这意味着 <code>Blob</code> 对象包含一个指向 SQL <code>BLOB</code> 数据而不是数据本身的逻辑指针。<code>Blob</code> 对象在它被创建的事务处理期间有效。
</p>
<p>接口 <a href="http://man.ddvip.com/program/java_api_zh/java/sql/ResultSet.html" title="java.sql 中的接口"><code>ResultSet</code></a>、<a href="http://man.ddvip.com/program/java_api_zh/java/sql/CallableStatement.html" title="java.sql 中的接口"><code>CallableStatement</code></a> 和 <a href="http://man.ddvip.com/program/java_api_zh/java/sql/PreparedStatement.html" title="java.sql 中的接口"><code>PreparedStatement</code></a> 中的方法（如 <code>getBlob</code> 和 <code>setBlob</code>）允许编程人员访问 SQL <code>BLOB</code> 值。<code>Blob</code> 接口提供某些方法来获得 SQL <code>BLOB</code> (Binary Large Object) 值的长度、在客户端实现 <code>BLOB</code> 值以及确定 <code>BLOB</code> 值中某一字节样本的位置。此外，此接口还拥有更新 <code>BLOB</code> 值的方法。
</p>
<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311893.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-02-04 10:30 <a href="http://www.blogjava.net/zhyiwww/archive/2010/02/04/311893.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript dom清空table的方法</title><link>http://www.blogjava.net/zhyiwww/archive/2010/02/03/311813.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 03 Feb 2010 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/02/03/311813.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311813.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/02/03/311813.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311813.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311813.html</trackback:ping><description><![CDATA[<br />
[1]通常方法<br />
循环table的rows，然后一个一个删除。<br />
这个方法是通常的方法，可行，但是效率不好。<br />
<br />
[2]另一个方法<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var artTable = document.getElementById("artical_table");&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; console.debug(artTable.getElementsByTagName("thead")[0]);<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var artBody=artTable.tBodies[0];<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //clear table<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; artBody.innerHTML='';<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-02-03 15:52 <a href="http://www.blogjava.net/zhyiwww/archive/2010/02/03/311813.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VirtualBox修改UUID实现VM复制</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/30/311321.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Sat, 30 Jan 2010 04:15:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/30/311321.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311321.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/30/311321.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311321.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311321.html</trackback:ping><description><![CDATA[<pre>virtualbox是一个很好用的虚拟机软件，可以和VmWare想媲美。缺点也有，就是对CPU虚拟的功能不强。<br />
<br />
我用VirtualBox做了一个Ubuntu Server虚拟镜像。我想实现复制几个，然后可以同时装载几个虚拟机。<br />
但是在我想把复制的镜像载入的时候，系统告诉我，UUID已经存在。<br />
<br />
所以，就需要修改UUID才能使用<br />
<br />
比如，我有ubuntu-server-winter.vdi<br />
<br />
$cp ubuntu-server-winter.vdi ubuntu-server-spring.vdi<br />
<br />
在装载ubuntu-server-spring.vdi的时候就会出现UUID已经存在的错误。<br />
<br />
解决方法是：<br />
<span style="color: #2000ff;"><em><span style="font-size: 18pt;"><span style="color: #2000ff;"><em><strong><br />
$VBoxManage internalcommands setvdiuuid ubuntu-server-spring.vdi</strong></em></span><br />
</span></em></span><br />
VirtualBox Command Line Management Interface Version 3.1.2<br />
<br />
(C) 2005-2009 Sun Microsystems, Inc.<br />
<br />
All rights reserved.<br />
UUID changed to: b2bc4dd6-d8f0-48c5-be34-14ed2efa6284<br />
<br />
就可以了。你就可以装载使用了。<br />
<br />
<br />
<br />
&nbsp;<br />
<br />
<br />
<br />
</pre>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-30 12:15 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/30/311321.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对Ubuntu配置文件/etc/profile的理解</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311240.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 29 Jan 2010 08:36:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311240.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311240.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311240.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311240.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311240.html</trackback:ping><description><![CDATA[关于配置文件/etc/profile<br />
<br />
这个文件，是系统启动是要自动执行的文件，任何一个用户登录系统都会执行这个文件。<br />
这个文件里面的配置，是全局配置。所以，如果你需要让你的变量让所有的用户都能使用的话，那么可以考虑在此配置文件里面添加。<br />
比如JAVA_HOME变量的配置。<br />
但是，尽量的，我们不要去修改这个配置文件，因为这个是系统的配置文件。我们尽量的修改我们自己独立配置文件。<br />
在可能的时候，或者重新配置的时候，你可以随时修改你自己的配置文件而不致于影响他人或者此服务器系统。<br />
<br />
同样的道理，修改/etc/rd.local也可以达到同样的效果。<br />
但是和上面的一样，不是一个好的选择。<br />
<br />
替代方案是什么呢？<br />
先来看/etc/profile的源代码<br />
<span style="color: red;"><br />
<strong>if [ -d /etc/profile.d ]; then<br />
&nbsp; for i in /etc/profile.d/*.sh; do<br />
&nbsp;&nbsp;&nbsp; if [ -r $i ]; then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . $i<br />
&nbsp;&nbsp;&nbsp; fi<br />
&nbsp; done<br />
&nbsp; unset i<br />
fi</strong></span><br />
<br />
if [ "$PS1" ]; then<br />
&nbsp; if [ "$BASH" ]; then<br />
&nbsp;&nbsp;&nbsp; PS1='"u@"h:"w"$ '<br />
&nbsp;&nbsp;&nbsp; if [ -f /etc/bash.bashrc ]; then<br />
&nbsp;&nbsp; &nbsp;. /etc/bash.bashrc<br />
&nbsp;&nbsp;&nbsp; fi<br />
&nbsp; else<br />
&nbsp;&nbsp;&nbsp; if [ "`id -u`" -eq 0 ]; then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PS1='# '<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PS1='$ '<br />
&nbsp;&nbsp;&nbsp; fi<br />
&nbsp; fi<br />
fi<br />
<br />
红色的代码部分，说明/etc/profile会首先执行/etc/profile.d/目录下的所有*.sh文件。<br />
这也就给我们一个可扩展的思路。<br />
<br />
如果我们需要配置JDK,那么就在/etc/profile.d/下创建jdk.sh文件<br />
如果需要配置oracle,那么就在//etc/profile.d/下创建oracle.sh文件<br />
<br />
然后，在对应的配置文件里面添加你自己的配置就可以了。<br />
<br />
这就是，我上两篇blog里面用到的思路。<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-29 16:36 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/29/311240.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu 9.10 root用户启用</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311225.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 29 Jan 2010 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311225.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311225.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311225.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311225.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311225.html</trackback:ping><description><![CDATA[相比Ubuntu 9.04来说Ubuntu 9.10启用root用户要容易的多。<br />
在Ubuntu 9.04 上，你要先修改/etc/gdm/gdm. conf<br />
先允许启用root用户登录。<br />
然后给root设置密码。<br />
在Ubuntu9.10 上，你只需要<br />
<br />
$sudo su<br />
# passwd <br />
输入两次密码<br />
给root设置密码<br />
然后<br />
$su<br />
就可以用root登录了<br />
<br />
就这么简单。<br />
&nbsp;<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311225.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-29 15:01 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/29/311225.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作随想录</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311218.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 29 Jan 2010 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311218.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311218.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311218.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311218.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311218.html</trackback:ping><description><![CDATA[这是一个新的公司，全新的环境。<br />
来到这来上班，我面临着很大的压力。特别是最近的一周。<br />
公司的开发环境只用<br />
JSP+servlet+ConnectionPool+DB，不可否认，这是一个更深入学习底层结构的很好的机会。<br />
这次开发的系统较大，对系统性能要求也比较高。<br />
看来，这次是要费些脑力了。<br />
通过最近的工作，我逐渐适应了。随着一个又一个难点的突破，我发现，在大压力下，进步是最快的，学习是最有效率的。<br />
我想前面还会有更多的，更大的压力。顶上去，就能看到成功和希望。就像经理说的，面对困难，面对挑战，面对压力，要选择勇敢的迎上去，顶过去，相信什么问题都不会是问题。选择退缩，选择躲避，那么就会什么困难都是困难，小困难也变成大困难。<br />
<br />
在我经历过这些困难，经历过这些压力和挫折之后，似乎有了一点&#8220;曾经沧海难为水的感觉&#8221;。<br />
<br />
最后，祝福所有和我一样拼命在技术一些的同胞们，努力工作的同时，学会去珍惜自己的身体，珍惜身边的好光景，珍惜一点点溜走的时光。抽点时间，陪陪家人，也出去逛逛。<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311218.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-29 14:30 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/29/311218.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu下JDK的安装和配置</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311210.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 29 Jan 2010 05:24:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311210.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311210.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311210.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311210.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311210.html</trackback:ping><description><![CDATA[<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="OpenOffice.org 3.1  (Linux)" />
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
<ol>
    <li>
    <p style="widows: 0; orphans: 0;" align="LEFT"><font face="DejaVu Sans"><font color="#000000"><font size="3">下载</font></font></font><font color="#000000"><font face="Nimbus Sans L, Arial, sans-serif"><font size="3">JDK_1.6.0_18</font></font></font></p>
    </li>
    <li>
    <p style="widows: 0; orphans: 0;" align="LEFT"><font color="#000000"><font face="DejaVu Sans"><font size="3">解压安装</font></font></font></p>
    </li>
</ol>
<p style="widows: 0; orphans: 0;" align="LEFT"><font face="DejaVu Sans"><font color="#000000"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 安装目录</font></font></font><font color="#000000"><font face="Nimbus Sans L, Arial, sans-serif"><font size="3">/opt/jdk1.6.0_18</font></font></font></p>
<ol start="3">
    <li>
    <p style="widows: 0; orphans: 0;" align="LEFT"><font face="DejaVu Sans"><font color="#000000"><font size="3">配置</font></font></font><font color="#000000"><font face="Nimbus Sans L, Arial, sans-serif"><font size="3">Path</font></font></font></p>
    </li>
</ol>
<p style="widows: 0; orphans: 0;" align="LEFT"><font color="#000000"><font face="Nimbus Sans L, Arial, sans-serif"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	#
cd /etc/profile.d</font></font></font></p>
<p style="widows: 0; orphans: 0;" align="LEFT"><font color="#000000"><font face="Nimbus Sans L, Arial, sans-serif"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	#
touch jdk.sh</font></font></font></p>
<p style="widows: 0; orphans: 0;" align="LEFT"><font color="#000000"><font face="Nimbus Sans L, Arial, sans-serif"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	#
vim jdk.sh</font></font></font></p>
<p style="widows: 0; orphans: 0;" align="LEFT"><font face="DejaVu Sans"><font color="#000000"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 内容如下：</font></font></font></p>
<p style="widows: 0; orphans: 0;" align="LEFT"><font color="#000000"><font face="Nimbus Sans L, Arial, sans-serif"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	JAVA_HOME=/opt/jdk1.6.0_18</font></font></font></p>
<p style="margin-left: 0.49in; widows: 0; orphans: 0;" align="LEFT">
<font color="#000000"><font face="Nimbus Sans L, Arial, sans-serif"><font size="3">export
JAVA_HOME</font></font></font></p>
<p style="margin-left: 0.49in; widows: 0; orphans: 0;" align="LEFT">
<font color="#000000"><font face="Nimbus Sans L, Arial, sans-serif"><font size="3">PATH=$PATH:/$JAVA_HOME/bin</font></font></font></p>
<p style="margin-left: 0.49in; widows: 0; orphans: 0;" align="LEFT">
<font color="#000000"><font face="Nimbus Sans L, Arial, sans-serif"><font size="3">export
PATH</font></font></font></p>
<p style="margin-left: 0.49in; widows: 0; orphans: 0;" align="LEFT">
<font color="#000000"><font face="DejaVu Sans"><font size="3">此配置会对所有用户有效</font></font></font></p>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311210.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-29 13:24 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/29/311210.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu环境下Tomcat自启动的配置</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311207.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 29 Jan 2010 05:13:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311207.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311207.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311207.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311207.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311207.html</trackback:ping><description><![CDATA[步骤和配置oracle的自启动相似，不过是脚本不同。<br />
步骤如下<br />
[1]touch /etc/init.d/tomcat6<br />
[2]vim /etc/init.d/tomcat6<br />
内容如下：<br />
<span style="color: #1b3601;"><span style="color: red;"><span style="color: #1b3601;"><span style="color: #1b3601;"><span style="color: red;"><span style="color: red;"><span style="color: #1b3601;"><span style="color: red;"><span style="color: #1b3601;"><span style="color: #1b3601;"><span style="color: red;"><br />
</span></span></span></span></span>#!/bin/sh &nbsp;<br />
#tomcat auto-start &nbsp;<br />
# &nbsp;<br />
# description: Auto-starts tomcat &nbsp;<br />
# processname: tomcat &nbsp;<br />
# pidfile: /var/run/tomcatpid &nbsp;<br />
<br />
export JAVA_HOME=/opt/jdk1.6.0_18<br />
export CATALINA_HOME=/opt/apache-tomcat-6.0.18<br />
<br />
case $1 in &nbsp;<br />
start) &nbsp;<br />
sh $CATALINA_HOME/bin/startup.sh &nbsp;<br />
;; &nbsp;<br />
stop) &nbsp;<br />
sh $CATALINA_HOME/bin/shutdown.sh &nbsp;<br />
;; &nbsp;<br />
restart) &nbsp;<br />
sh $CATALINA_HOME/bin/shutdown.sh &nbsp;<br />
sh $CATALINA_HOME/bin/startup.sh &nbsp;<br />
;; &nbsp;<br />
*) &nbsp;<br />
echo 'Usage:tomcat start|stop|restart' &nbsp;<br />
;; &nbsp;<br />
esac &nbsp;<br />
<br />
exit 0 </span></span></span></span></span></span><br />
<br />
<br />
[3]chkconfig --add tomcat6<br />
<br />
[4]chkconfig --edit tomcat6<br />
内容为<br />
tomcat6 on<br />
[5]chkconfig --list tomcat6 <br />
<br />
tomcat6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:off&nbsp; 1:off&nbsp; 2:on&nbsp;&nbsp; 3:on&nbsp;&nbsp; 4:on&nbsp;&nbsp; 5:on&nbsp;&nbsp; 6:off<br />
<br />
至此设置完毕。<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-29 13:13 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/29/311207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>误改sudoers的访问权限后的修复</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311205.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 29 Jan 2010 04:52:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311205.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311205.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311205.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311205.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311205.html</trackback:ping><description><![CDATA[<br />
造成原因：<br />
在linux下，普通用户只能执行普通操作，如果希望普通用户能够执行管理员的权限，就需要/etc/sudoers。<br />
默认情况下，/etc/sudoers的权限是0440,也就是<br />
4 -r--r----- 1 root root 557 2002-01-05 13:14 /etc/sudoers<br />
<br />
所以如果想添加用户到sudoer，那么就需要给/etc/sudoers写权限。<br />
chmod a+w /etc/soduers<br />
添加用户完成后，就以为可以了，于是保存退出。<br />
然而就这样，你就再也不能用sudo su 进入root权限了。<br />
<br />
因为/etc/sudoers的权限只能是0440才能为系统使用和识别。<br />
<br />
你肯定想，可以用<br />
chmod 0440 /etc/sudoer来修改此用户的权限。问题是，此操作需要root权限。<br />
<br />
无语了。。。<br />
<br />
怎么办呢？<br />
<br />
此时root也不能登录，因为没有给root设置密码。<br />
<br />
解决此问题的办法是：<br />
[1]如果root能登录，就按上面的操作，就可以顺利完成<br />
[2]如果上面的方法不行，就安装下面的操作进行<br />
重启ubuntu系统，按ESC，直到进入单用户模式，此时就具有管理员权限<br />
然后<br />
#chmod 0440 /etc/sudoers<br />
#reboot<br />
一切OK.<br />
<br />
针对此问题，为了防止以后再发生，给一下建议:<br />
启用root用户并给用户设置密码<br />
<br />
操作方法<br />
$sudo su<br />
#passwd<br />
设置完密码，就可以用root用户登录了<br />
以后再遇到此类问题，就可以直接使用root用户解决。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311205.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-29 12:52 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/29/311205.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu9.10下关于oracle自启动的配置方法</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311189.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 29 Jan 2010 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311189.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311189.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/29/311189.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311189.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311189.html</trackback:ping><description><![CDATA[下`按照下面的命令操作<br />
<br />
#cp /etc/oratab /etc/oratab.bak.0&nbsp; 备份 <br />
#vim /etc/oratab<br />
<br />
ORCL:/opt/oracle/product/10.2.0/db_1:<strong>Y</strong><br />
主要是黑体的部分<br />
<br />
配置/etc/init.d/oracle-10g启动脚本<br />
#touch /etc/init.d/oracle-10g<br />
#vim /etc/init.d/oracle-10g<br />
内容如下：<br />
<span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="color: #05ba32;"><span style="font-size: 10pt;"><span style="font-size: 14pt;"><span style="font-size: 24pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><br />
#!/bin/bash<br />
# chkconfig: 345 99 10<br />
# description: Startup Script for Oracle Databases<br />
# /etc/rc.d/init.d/dbstart<br />
<br />
export ORACLE_BASE=/opt/oracle<br />
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1<br />
export ORACLE_SID=ORCL<br />
export PATH=$PATH:$ORACLE_HOME/bin<br />
ORA_OWNR="oinstall"<br />
# if the executables do not exist -- display error<br />
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]<br />
then<br />
echo "Oracle startup: cannot start"<br />
exit 1<br />
fi<br />
# depending on parameter -- startup, shutdown, restart<br />
# of the instance and listener or usage display<br />
case "$1" in<br />
start)<br />
# Oracle listener and instance startup<br />
echo -n "Starting Oracle: "<br />
su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart"<br />
touch /var/lock/Oracle<br />
su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"<br />
su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl start"<br />
echo "OK"<br />
;;<br />
stop)<br />
# Oracle listener and instance shutdown<br />
echo -n "Shutdown Oracle: "<br />
su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"<br />
su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl stop"<br />
su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut"<br />
su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"<br />
rm -f /var/lock/Oracle<br />
echo "OK"<br />
;;<br />
reload|restart)<br />
$0 stop<br />
$0 start<br />
;;<br />
*)<br />
echo "Usage: `basename $0` start|stop|restart|reload"<br />
exit 1<br />
esac<br />
exit 0<br />
<br />
<span style="color: #000000;">保存退出。<br />
<strong>注意：要把里面的对应目录和SID修改成你自己对应的配置。<br />
<br />
添加自启动<br />
#chkconfig --add oracle-10g<br />
<br />
</strong></span></span></span></span></span></span></span></span></span><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="color: #05ba32;"><span style="font-size: 10pt;"><span style="font-size: 14pt;"><span style="font-size: 24pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="color: #000000;"><strong><span style="color: red;">#chkconfig --edit oracle-1g<br />
内容如下<br />
oracle-10g on</span><br />
</strong></span></span></span></span></span></span></span></span></span><br />
<span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="color: #05ba32;"><span style="font-size: 10pt;"><span style="font-size: 14pt;"><span style="font-size: 24pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="color: #000000;"><strong>#chkconfig --list oracle-10g<br />
<br />
</strong></span></span></span></span></span></span></span></span></span>oracle-10g&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:off&nbsp; 1:off&nbsp; 2:on&nbsp;&nbsp; 3:on&nbsp;&nbsp; 4:on&nbsp;&nbsp; 5:on&nbsp;&nbsp; 6:off<br />
这就OK了。<br />
<br />
最后，再去<br />
/opt/oracle/product/10.2.0/db_1/network/admin目录，查看tnsnames.ora文件，检查你的监听配置。<br />
<br />
#cat tnsnames.ora<br />
内容如下：<br />
<br />
<br />
LISTENER_ORCL =<br />
&nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = CCXFIT-DBSERVER)(PORT = 1521))<br />
<br />
<br />
ORCL =<br />
&nbsp; (DESCRIPTION =<br />
&nbsp;&nbsp;&nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = CCXFIT-DBSERVER)(PORT = 1521))<br />
&nbsp;&nbsp;&nbsp; (CONNECT_DATA =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SERVER = DEDICATED)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SERVICE_NAME = ORCL)<br />
&nbsp;&nbsp;&nbsp; )<br />
&nbsp; )<br />
<br />
EXTPROC_CONNECTION_DATA =<br />
&nbsp; (DESCRIPTION =<br />
&nbsp;&nbsp;&nbsp; (ADDRESS_LIST =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC3))<br />
&nbsp;&nbsp;&nbsp; )<br />
&nbsp;&nbsp;&nbsp; (CONNECT_DATA =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SID = PLSExtProc)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (PRESENTATION = RO)<br />
&nbsp;&nbsp;&nbsp; )<br />
&nbsp; )<br />
<br />
最重要的是关注端口，我开始以为默认是1521端口，可是怎么也连不上，一看，才知道，原来自动配置的是1523端口。<br />
所以，在此需要核实一下监听端口的配置。<br />
<br />
至此，配置完毕。重启系统以验证配置是否生效。<br />
<br />
以后如果需要重启，可以执行<br />
/etc/init.d/oracle-10g restart <br />
来进行重启。<br />
<br />
<br />
<br />
<span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="color: #05ba32;"><span style="font-size: 10pt;"><span style="font-size: 14pt;"><span style="font-size: 24pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</span></span></span></span></span></span></span></span><br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311189.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-29 10:58 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/29/311189.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu如何修改计算机名称</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/28/311136.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Thu, 28 Jan 2010 12:49:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/28/311136.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311136.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/28/311136.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311136.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311136.html</trackback:ping><description><![CDATA[比如我的计算机名称是XXX-TTT,我想修改成YYY-ZZZ<br />
修改有两步：<br />
[1]修改/etc/hosts<br />
<br />
127.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost<br />
192.168.76.21&nbsp;&nbsp; <em><strong>YYY-ZZZ</strong></em><br />
<br />
# The following lines are desirable for IPv6 capable hosts<br />
::1&nbsp;&nbsp;&nbsp;&nbsp; localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
ff02::3 ip6-allhosts<br />
~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp; <br />
<br />
[2]修改/etc/hostname<br />
内容为<br />
<br />
<em><strong>YYY-ZZZ<br />
<br />
</strong></em>保存，退出，重启，就可以了。<em><strong><br />
<br />
<br />
<br />
<br />
</strong></em>&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311136.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-28 20:49 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/28/311136.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu9.10下面安装oracle异常问题的解决方案</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/28/311133.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Thu, 28 Jan 2010 12:14:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/28/311133.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/311133.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/28/311133.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/311133.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/311133.html</trackback:ping><description><![CDATA[[1]异常一<br />
<span style="font-family: 宋体;">Error in invoking target
&#8216;all_no_orcl&#8217; of makefile
&#8216;/opt/oracle/product/10.2/rdbms/lib/ins_rdbms.mk&#8217;. See
&#8216;/opt/oracle/oraInventory/logs/installActions2007-12-04_02-50-11AM.log&#8217;
for details.</span><br />
<br />
[2]异常二<br />
Error in invoking target 'collector' of makefile '/opt/oracle/10g/product/10.2.0/db_1/sysman/lib/ins_emdb.mk'.<br />
<br />
<br />
第一个异常的原因是因为binutils包的原因，可以用下面方法来解决<br />
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="OpenOffice.org 3.1  (Linux)" />
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
<p><strong><span style="font-size: 14pt;">aptitude install gcc  libaio1 lesstif2 lesstif2-dev make libc6
libc6-i386 libc6-dev-i386 libstdc++6 lib32stdc++6 lib32z1 ia32-libs
rpm<code> make <span style="color: red;">binutil  binutils-dev  binutils-source</span></code></span></strong></p>
<p><strong><span style="font-size: 14pt;"><code><span style="color: red;"><span style="color: #2e10ff;">
<p><strong><span style="font-size: 14pt;"><code><span style="color: red;"><span style="color: #2e10ff;">cd /usr/lib</span><br />
</span></code></span></strong></p>
ln -s libstdc++.so.6 libstdc++.so.5</span></span></code></span></strong></p>
<p>最主要是红字的部分和蓝色部分</p>
<br />
<p>第二个异常比较麻烦，解决方法是：</p>
<p>先点continue完成安装。然后，到$ORACLE_HOME/bin下面，执行下面的操作</p>
<pre>oinstall:/tmp$ cd $ORACLE_HOME/bin<br />
<br />
oinstall:/xxx/xxxx/ $ mv oracle oracle.bin<br />
<br />
oinstall: touch oracle<br />
<br />
<br />
写入以下内容<br />
<br />
#!/bin/bash<br />
<br />
export DISABLE_HUGETLBFS=1<br />
exec $ORACLE_HOME/bin/oracle.bin $@<br />
<br />
EOF<br />
<br />
oinstall:/xxx/xxx/xxx$chmod a+x oracle<br />
<br />
然后执行 <br />
<br />
oinstall:/xxx/xxx/xxx$dbca<br />
<br />
然后就是一路界面，就可以顺利完成了。<br />
<br />
详细原因请参阅此博客<br />
<br />
<a title="http://www.dbanotes.net/Oracle/Install-Oracle10g-SuSE9.1.htm" href="http://www.dbanotes.net/Oracle/Install-Oracle10g-SuSE9.1.htm">http://www.dbanotes.net/Oracle/Install-Oracle10g-SuSE9.1.htm</a><br />
<br />
这种方案能够实现，完全是因为受此博主的思路和启发，在此表示感谢！！<br />
<br />
以上两个异常问题让我困扰了很长时间。所以就总结了一下，贴出来，期望能对和我一样碰到此问题的朋友有所帮助。<br />
<br />
</pre>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/311133.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-28 20:14 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/28/311133.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu下启动和关闭tomcat的简单方法</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/27/310983.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 27 Jan 2010 10:20:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/27/310983.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/310983.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/27/310983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/310983.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/310983.html</trackback:ping><description><![CDATA[在ubuntu下面，我们安装tomcat可以有两种方式<br />
[1]用aptitude安装<br />
aptitude install tomcat6<br />
<br />
[2]免安装版<br />
从apache tomcat 网站下载apache-tomcat-6.0.20 然后直接解压<br />
<br />
第一种方式，可以用/etc/init.d/tomcat6实现对tomcat的启动和关闭<br />
那么第二种方式呢，就只能 cd /opt/apache-tomcat-6.0.20,然后<br />
bin/startup.sh来启动，用bin/shutdown.sh来关闭。麻烦在于你每次都需要先进入目录，才能启动和关闭。<br />
<br />
一个简便的方式，可以如下实现和第一种方式一样的结果。<br />
其实很简单。<br />
<br />
<br />
cd /zy/green/apache-tomcat-6.0.20/<br />
#./bin/startup.sh<br />
<br />
case "$1" in<br />
&nbsp;&nbsp;&nbsp; start)<br />
&nbsp;&nbsp;&nbsp; ./bin/startup.sh<br />
&nbsp;&nbsp;&nbsp; exit 1;;<br />
<br />
&nbsp;&nbsp;&nbsp; stop)<br />
&nbsp;&nbsp;&nbsp; ./bin/shutdown.sh<br />
&nbsp;&nbsp;&nbsp; exit 1;;<br />
esac<br />
<br />
<br />
保存成文件/etc/init.d/tomcat<br />
<br />
然后，你就可以用/etc/init.d/start来启动你的tomcat了，也可以用/etc/init.d/tomcat来关闭你的tomcat了。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/310983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-27 18:20 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/27/310983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu系统下sqlplus的配置</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/27/310968.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 27 Jan 2010 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/27/310968.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/310968.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/27/310968.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/310968.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/310968.html</trackback:ping><description><![CDATA[Ubuntu环境下安装oracle<br />
[1]aptitude install oracle-xe<br />
安装完成了，不能使用sqlplus,比较郁闷。<br />
找资料，看到的都是配置ORACLE_HOME.<br />
可是怎么配置呢？我找到了一个方法。<br />
<br />
先要知道oracle的安装目录<br />
# find /usr | grep -i oracle <br />
发现，oracle的home目录是<br />
<strong>/usr/lib/oracle/xe/app/oracle/product/10.2.0</strong><br />
<br />
[2]配置ORACLE_HOME<br />
root@xxx-laptop:/tmp#touch /etc/profile.d/oracle.sh<br />
root@xxx-laptop:/tmp#vim /etc/profile.d/oracle.sh<br />
内容如下：<br />
<br />
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0<br />
export PATH=$PATH:$ORACLE_HOME/client/bin:$ORACLE_HOME/server/bin<br />
<br />
上面是定义ORACLE_HOME系统变量<br />
下面是把ORACLE的相关系统程序放到PATH变量下面，这样，任何用户都可以在自己的终端里面执行ORACLE的相关程序。<br />
<br />
[3]用sqlplus连接数据库<br />
xxx@xxx-laptop:/tmp$sqlplus oinstall@192.168.76.222 <br />
<br />
然后输入你的密码，就可以登录oracle了。<br />
SQL&gt; select 18 from dual<br />
<br />
<br />
SQL&gt; <br />
SQL&gt; select 18 from dual;<br />
<br />
&nbsp;&nbsp; &nbsp;18<br />
----------<br />
&nbsp;&nbsp; &nbsp;18<br />
<br />
SQL&gt;&nbsp;&nbsp; <br />
<br />
这样就可以使用sqlplus了。<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/310968.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-27 16:50 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/27/310968.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用liveCD修复ubuntu的Grub</title><link>http://www.blogjava.net/zhyiwww/archive/2010/01/12/309245.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Tue, 12 Jan 2010 15:35:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2010/01/12/309245.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/309245.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2010/01/12/309245.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/309245.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/309245.html</trackback:ping><description><![CDATA[如果在安装ubuntu和windows系统时不小心破坏了grub的话，就需要用一些办法来恢复grub引导程序。<br />
<br />
首先，要用ubuntu的liveCD引导系统到桌面，然后在控制台下面，执行下面的命令，就可以恢复grub了。<br />
<br />
sudo -i<br />
<pre>最重要的三步：<br />
<br />
加载/分区<br />
mount /dev/sda7 /mnt<br />
<br />
加载/boot分区<br />
mount /dev/boot8 /mnt/boot <br />
<br />
#挂载你其他的分区(如果有的话)<br />
<br />
# 重建grub到sda的mbr<br />
grub-install --root-directory=/mnt /dev/sda<br />
<br />
<br />
重启系统，就可以看到你的启动菜单已经出现了。<br />
<br />
<br />
<br />
</pre>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/309245.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2010-01-12 23:35 <a href="http://www.blogjava.net/zhyiwww/archive/2010/01/12/309245.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>