<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 5,  comments - 0,  trackbacks - 0
      2010年5月14日
    今天在用IBATIS幫別人寫(xiě)個(gè)程序的時(shí)候突然出現(xiàn)了一個(gè)很怪異的錯(cuò)誤
    com.ibatis.common.jdbc.exception.NestedSQLException:   
    --- The error occurred in ./map/Guest.xml.  
    --- The error occurred while applying a result map.  
    --- Check the Guest.listGuest.  
    --- Check the result mapping for the 'password' property.  
    --- Cause: java.sql.SQLException: Column 'userpwd' not found.


    at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:201)
    at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)
    at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
    at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:94)
    at com.zhxingchen.guestbook.dao.impl.BaseDAOImpl.queryAll(BaseDAOImpl.java:36)
    at com.zhxingchen.guestbook.dao.impl.GuestDAOImpl.queryGuestByProperty(GuestDAOImpl.java:68)
    at com.zhxingchen.guestbook.dao.impl.TestGuestDAO.testQueryByProperty(TestGuestDAO.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
    at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
    at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
    at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
    at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
    at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
    Caused by: java.sql.SQLException: Column 'userpwd' not found.


    at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:983)
    at com.mysql.jdbc.ResultSet.getString(ResultSet.java:4826)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.ibatis.common.jdbc.logging.ResultSetLogProxy.invoke(ResultSetLogProxy.java:47)
    at $Proxy7.getString(Unknown Source)
    at com.ibatis.sqlmap.engine.type.StringTypeHandler.getResult(StringTypeHandler.java:35)
    at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getPrimitiveResultMappingValue(ResultMap.java:619)
    at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getResults(ResultMap.java:345)
    at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:384)
    at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:300)
    at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:189)
    at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221)
    at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)
    ... 28 more
        出現(xiàn)這個(gè)錯(cuò)誤的當(dāng)頭我就懵了,我怎么也想不明白數(shù)據(jù)庫(kù)里面怎么會(huì)沒(méi)有userpwd這個(gè)字段,我反復(fù)的對(duì)照都感覺(jué)數(shù)據(jù)庫(kù)里是有的啊,最后終于讓我找出了問(wèn)題所在,等知道后我就暈了,一個(gè)很簡(jiǎn)單的映射錯(cuò)誤,我居然反復(fù)了看了3個(gè)小時(shí),可能是熬夜了思維停滯了吧!
    以下是SQLMap.xml的兩段段代碼:第一段是定義了一個(gè)resultMap,第二段是利用這個(gè)resultMap返回
    <resultMap id="listGuest" class="guest"> <result property="id"/> <result property="userName"/> <result property="password" column="userpwd"/> <result property="realName"/> <result property="gender"/> <result property="age"/> <result property="email"/> <result property="qq"/> </resultMap>
    <statement id="queryGuestByProperty" parameterClass="guest" resultMap="listGuest"> SELECT ID as id, USERNAME as userName, USERPWD as password, USERREALNAME as realName, USERSSEX as gender, USERAGE as age, USEREMAIL as email, USERQQ as qq FROM GUEST <dynamic prepend="WHERE"> <isNotNull prepend="AND" property="password"> USERNAME=#userName# </isNotNull>
    ...............
    也許不仔細(xì)看還真看不出來(lái),其實(shí)USERPWD在取出來(lái)的時(shí)候就已經(jīng)轉(zhuǎn)換成password了,難怪在resultMap中始終找不到userpwd,這樣要是能找到才怪!~
    改的話(huà)很容易,我傾向于改resultMap文件,將password后面的 column="userpwd"去掉就OK了!~
    萬(wàn)事還得謹(jǐn)慎!!!!!
    posted @ 2010-05-15 06:57 Zhjiang 閱讀(1005) | 評(píng)論 (0)編輯 收藏
    今天早上在上班的路上突然想起來(lái)《錦瑟》,于是隨便念了一下,走著走著,突然想讀讀這首詩(shī),不為其他,只為興起。
    錦瑟  李商隱
    錦瑟無(wú)端五十弦,一弦一柱思華年。
    莊生曉夢(mèng)迷蝴蝶,望帝春心托杜鵑。
    滄海月明珠有淚,藍(lán)田日暖玉生煙。
    此情可待成追憶,只是當(dāng)時(shí)已惘然。

        讀詩(shī),少不了要說(shuō)作者的,李商隱(約812年或813年1—約858年),字義山,號(hào)玉谿生、樊南生。晚唐詩(shī)人。原籍河內(nèi)懷州(今河南沁陽(yáng)),祖輩遷滎陽(yáng)(今河南鄭州)。(此段摘自維基百科)
        這首詩(shī)描寫(xiě)了很多種物,也引用了兩個(gè)典故,只有最后一聯(lián)寫(xiě)的是情義。
        首先,我們來(lái)看看這首詩(shī)里面的物,分別有錦瑟,蝴蝶,杜鵑,滄海,月亮,珍珠,淚水,藍(lán)田,太陽(yáng),玉,煙等等。除去中間引用的典故,其他基本都是靜物。首先寫(xiě)錦瑟,這件物事開(kāi)篇第一句就托出來(lái)了,點(diǎn)明全篇,我想當(dāng)時(shí)作者可能是看到了這樣一個(gè)錦瑟才引發(fā)了感慨,而且感慨頗深,每一弦一個(gè)雁柱都讓作者想到了以前的歡樂(lè)的時(shí)光,可見(jiàn)這件物事對(duì)他來(lái)說(shuō)銘心刻骨。然后是蝴蝶和杜鵑,當(dāng)然這兩個(gè)事物是作者引用的典故,其中有莊子的物我相容的典故和望帝的化杜鵑以寄意,可見(jiàn)作者對(duì)物的看法,也就進(jìn)一步點(diǎn)名作者此刻的心情可能是和錦瑟想容了,或者是作者將這個(gè)物看作了另一個(gè)人,即借物懷人,這個(gè)我們?nèi)粘R苍鴷?huì)有,譬如說(shuō)有時(shí)候你看到一個(gè)鐲子,可能和你送給你的朋友的信物很像,多年不見(jiàn)早已忘懷,如今再見(jiàn),難道在你眼中只看到了那個(gè)鐲子么?然后是滄海這一聯(lián),這一聯(lián)中一連寫(xiě)了好多物事,有八個(gè)之多吧,其中有像珍珠、玉這樣富貴的物事,也有像淚水,煙那樣易逝讓人悲傷的物事,更有像滄海、月亮、太陽(yáng)、藍(lán)田等亙古不變的物事,可見(jiàn)作者既描寫(xiě)了漫長(zhǎng),也描寫(xiě)了短暫,既描寫(xiě)了歡樂(lè),也描寫(xiě)了悲傷,然而,快樂(lè)并非是永久的,因?yàn)辄c(diǎn)題的兩個(gè)物事是淚和煙,可見(jiàn)歡樂(lè)的時(shí)光很短暫而悲傷和思念卻相當(dāng)漫長(zhǎng),可見(jiàn)作者思念之深。
        其次,這首詩(shī)里有一句是抒情的,此情可待成追憶,只是當(dāng)時(shí)已惘然。那份情義本來(lái)是可以去期盼的但現(xiàn)在只能追憶,只是當(dāng)時(shí)已經(jīng)迷茫了。此句點(diǎn)題也呼應(yīng)了第一聯(lián)看到錦瑟后懷人。
        在這里我突然想起了一些故人,也許當(dāng)年的吵鬧其實(shí)真的沒(méi)什么,卻又葬送了一段美好的情義,難道我們不也是迷茫了么?因而,要好好把握現(xiàn)在的這份感情,畢竟在數(shù)十億記的人群里,我們相遇,相知,到相愛(ài)是多么的不易,何苦非要鬧到以后看到了一些舊物卻只能以淚洗面,借物懷人呢!
        Ps: 在這首詩(shī)里的藍(lán)田,我在幾年前曾去過(guò),一個(gè)本來(lái)以玉石聞名的地方現(xiàn)在只有青山依在,綠水長(zhǎng)流。可見(jiàn),就算有的時(shí)候是掌握了資源,掌握了財(cái)富,若干年后大家也沒(méi)什么不同。所以對(duì)于那些和我一樣在大都市里尋找角色的朋友,請(qǐng)你們不要悲傷,也不要郁悶,生命很短暫,如何在有限的時(shí)間里讓生命更充實(shí),讓生活更輕松,讓自己更快樂(lè)才是我們所應(yīng)該考慮的事情。因?yàn)椋覀円嘈牛瑫r(shí)間才是仲裁者,一切的不平等,不平均在時(shí)間的面前都是泡沫,最后等會(huì)消散于無(wú)形。另外,藍(lán)田值得你去看一下! 
    posted @ 2010-05-14 19:57 Zhjiang 閱讀(203) | 評(píng)論 (0)編輯 收藏
    Apache Qpid:
    Wiki上的描述是:
    Apache Qpid is an open source (Apache 2.0 licensed) messaging system which implements the Advanced Message Queuing Protocol. It provides transaction management, queuing, distribution, security, management, clustering, federation and heterogeneous multi-platform support.
    另外 Apache Qpid 還有很多特點(diǎn),具體請(qǐng)查閱 http://qpid.apache.org/

    OK,不廢話(huà),進(jìn)入正題,我今天搞了一天才將其配置好,稍微會(huì)有一點(diǎn)麻煩,不過(guò)還算好用,對(duì)于用到Message Queue或者想用的朋友,可以嘗試一下!
    首先進(jìn)入http://qpid.apache.org/getting-started.html,然后進(jìn)入download 頁(yè)面,由于我是用JAVA來(lái)開(kāi)發(fā),所以我選擇下載Mutiple Component Packages條目下的JAVA broker,client & tools這一個(gè),用C++開(kāi)發(fā)或者其他語(yǔ)言開(kāi)發(fā)的也可以適當(dāng)選擇下載。另外還有一個(gè)適用的工具可以下載是在Management tools條目下面(是一個(gè)基于Eclipse RUP 的軟件,由于今天調(diào)了半天沒(méi)調(diào)好所以就不說(shuō)明了)
    然后回到getting-start那一頁(yè)看安裝說(shuō)明: 在這里我稍微說(shuō)下吧,反正也很簡(jiǎn)單(解壓什么的就略過(guò)了)!
    1. 設(shè)置環(huán)境變量,這里有兩個(gè)環(huán)境變量需要設(shè)置 QPID_HOME 和QPID_WORK,上面的E問(wèn)很簡(jiǎn)單,QPID_WORK是用來(lái)設(shè)置broker產(chǎn)生文件的路徑,主要是LOG吧。
    2.修改%QPID_HOME%\etc\config.xml文件,主要是修改management下面的<keyStorePath></keyStorePath>的文件路徑,否則直接啟動(dòng)會(huì)出現(xiàn)一個(gè)莫名其妙的找不到文件的錯(cuò)誤
    3.修改%QPID_HOME%\bin\create-example-ssl-strores.bat文件這里要修改三處,將-keystore后面的路徑換成你在第二部設(shè)置的文件路徑,這里可以看到這個(gè)批處理文件其實(shí)用的是%JAVA_HOME%\bin的keytool命令,有關(guān)keytool的命令詳解可以看http://shenzhenchufa.blog.51cto.com/730213/169390(這篇不是我寫(xiě)的,不好轉(zhuǎn)載,只好給鏈接,但是很詳細(xì))
    4.執(zhí)行create-example-ssl-strores,然后執(zhí)行qpid-server命令即可,你可以發(fā)現(xiàn)broker很正常的啟動(dòng)了
    在測(cè)試到broker啟動(dòng)之后可以利用svn Check(https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/)來(lái)得到具體例子(PS:什么還不會(huì)有SVN???)里面的例子寫(xiě)的還不錯(cuò),很詳細(xì),示例可以導(dǎo)入eclipse中執(zhí)行,當(dāng)然,在執(zhí)行示例的時(shí)候如果把broker給關(guān)掉了就不能出來(lái)結(jié)果了,當(dāng)運(yùn)行jmsexample下面的Hello.java出現(xiàn)了Hello world時(shí),那么恭喜你,Qpid安裝成功了,然后想干什么就可以具體發(fā)揮了!

    對(duì)于JMS的Prodcer(PTP)/Publisher(PUB/SUB)執(zhí)行步驟一般是
    1.通過(guò)ConnectionFactroy得到Connection(請(qǐng)注意Qpid示例中properties文件的connectionfactory.xxxxx鍵后面對(duì)應(yīng)的值一般都是amqp://xxxx:xxxx@xxxx/xxx?brokerlist='tcp://localhost:5672'格式的)
    2. 通過(guò)Connection獲得一個(gè)Session(PTP)/TopicSession(PUB/SUB)
    3. 獲得MessageProducer(PTP)/Topic(PUB/SUB)
    4. 產(chǎn)生/發(fā)布消息
    5. 關(guān)閉Connection(當(dāng)關(guān)閉Connection的時(shí)候,Session 也會(huì)自動(dòng)關(guān)閉)
    消費(fèi)者/訂閱之的執(zhí)行步驟幾乎差不多,就是第四步是消費(fèi)/訂閱消息

    好了,今天就寫(xiě)到這吧,很簡(jiǎn)單的介紹,以后再慢慢寫(xiě),有什么問(wèn)題,大家可以共同探討下!
    最后,注意文明用語(yǔ),謝謝!~~~~

    posted @ 2010-05-14 18:48 Zhjiang 閱讀(1215) | 評(píng)論 (0)編輯 收藏
    <2010年5月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(1)

    隨筆檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 日韩精品无码区免费专区 | 国产精品美女免费视频观看| 一本色道久久88综合亚洲精品高清| 免费一级毛片在线播放视频免费观看永久| 亚洲视频人成在线播放| 91久久青青草原线免费| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲自偷自偷图片| 男男AV纯肉无码免费播放无码| 又硬又粗又长又爽免费看 | 女人隐私秘视频黄www免费| 亚洲国产福利精品一区二区| xvideos亚洲永久网址| 四虎国产精品永久免费网址| 蜜臀亚洲AV无码精品国产午夜.| 亚洲AV日韩AV永久无码绿巨人 | 成人人观看的免费毛片| 成人影片一区免费观看| 亚洲色成人四虎在线观看| 亚洲亚洲人成综合网络| 妞干网在线免费观看| 久久免费国产精品一区二区| 鲁死你资源站亚洲av| 亚洲欧洲日产v特级毛片| 久久久久亚洲?V成人无码| 国拍在线精品视频免费观看| 国产免费无码AV片在线观看不卡| 亚洲精品欧美综合四区| 亚洲第一永久在线观看| 中文字幕亚洲电影| 全部免费国产潢色一级| 国产成人免费爽爽爽视频| 久久精品私人影院免费看| 一本久久A久久免费精品不卡| 国产成人精品亚洲2020| 7777久久亚洲中文字幕蜜桃| 亚洲中文字幕第一页在线| 国产成人一区二区三区免费视频| 精品久久8x国产免费观看| 免费91最新地址永久入口| 成人在线免费视频|