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

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

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

    大夢想家

    5年開發工程師,2年實施經理,X年售前顧問,......
    數據加載中……

    2008年4月14日

    Could not instantiate class XXX from tuple at AliasToBeanConstructorResultTransformer 的處理辦法

    今天客戶方服務器上突然有一個功能保存了,查看日志信息后發現,錯誤信息:

    Could not instantiate class XXX from tuple at AliasToBeanConstructorResultTransformer...

    Google了很久才發現有可能是HQL語句中別名的問題,具體原因未知,現在處理辦法是,將下面的語句中的別名去掉:

    StringBuffer hql = new StringBuffer("select new ContractItem(l, "
    + " pi.unitPrice, " + " pi.currencyType, " + "pi.currencyTypeDisplay," + " pi.units, "
    + " sum(pi.quantity + pi.adjQuantity), " + " pp, " + " pi.task) "
    + " from PurchasePlanItem pi " + " join pi.purchasePlan pp"
    + " join pi.priorList l " + " where l.supplierNo = ?  "
    + " and pp.id in (");
    具體是否可以解決,還要看一會兒的部署情況。

    posted @ 2013-01-09 10:57 阿南 閱讀(2277) | 評論 (0)編輯 收藏
    在企業內部部署Chrome的課前預習

        上篇文章中我簡單闡述了軍工企業信息化遇到的困境,而我們公司(西安融智軟件有限公司www.xardmu.com)則主要是面向軍工企業進行軟件產品的研發和定制項目的開發的。
        在產品實施和項目研發過程中,我們的前端技術人員需要做大量的瀏覽器兼容性的工作。痛苦至極啊~而且,即便完成了兼容性的修改,瀏覽器端的JS解析又變成了巨大的瓶頸!例如我們有一個項目為了提高用戶使用的時的方便性,使用了EXTJS4,結果在IE6下性能極其低下。我們的P8是一個項目管理軟件,需要使用到基于EXTJS的Gantt組件,但是此組件在IE6下十分不穩定,而且經常導致IE6崩潰。
       介于上面的種種問題,我們開始尋找從瀏覽器上解決問題的方法,例如使用FireFox或者Chrome,因為軍工企業都有域,所以通過域安裝一款軟件是十分容易的。經過權衡,我們決定使用Chrome做為我們軟件的入口。
       在企業內部署Chrome其實有三種方式:
       1.直接使用Chrome的某一個版本,對此版本進行精簡和簡單的參數配置,或者內置一些自定義的插件,直接進行部署。
       優點:技術門檻較低,只需要簡單的精簡安裝文件和配置參數即可。
       缺點:無法通過統一的策略管理局域網內所有的部署情況和策略。
       2.使用Google提供的Chrome商業版,通過Google提供的商業版可以輕松定制自己企業內部的Chrome,并生成分發文件,同時可以通過配合域策略完成對局域網內的客戶端的行為進行限制。
       優點:此版本是11年放出的,一直和多個大型企業緊密合作,相信不久將會形成更加完善的方案,從而在企業級應用市場站穩腳跟。
       缺點:需要在線安裝。
       3.使用Google的Chrome Frame,一個讓披著IE外殼的Chrome,擁有Chrome的所有性能,只是披著IE的外殼而已。
       優點:對于較老一些的企業,而且企業內部又擁有大量的IE時代產物的企業,絕對是一個好選擇。
       缺點:需要在線安裝。原有軟件代碼需要修改,才能在用戶瀏覽時使用Chrome模式。

       看到痛苦了吧?都需要在線安裝。看來下一步只能開始研究Chrome的源碼,修改并編譯屬于自己的瀏覽器了。。。

    posted @ 2013-01-03 12:37 阿南 閱讀(521) | 評論 (0)編輯 收藏
    查詢Oracle的BLOB類型

    最近在做項目的過程中,有些時候需要用Oracle的BLOB/CLOB類型存儲一些很長的文章,一直不知道怎么來進行相關的檢索,經過不懈的努力,終于能夠解決這個問題了。查詢語句如下:
     
    select count(*) from 表名 where dbms_lob.instr(表名.列名, utl_raw.cast_to_raw(convert('關鍵詞','utf8')), 1, 1) > 0;
     
    需要注意的是,這個解決方案只能查詢BLOB/CLOB中存儲的是經過處理的字符串。
     
    本方法在Oracle 10g上測試通過
    轉自http://commandos.blog.51cto.com/154976/128732

    posted @ 2010-06-17 11:03 阿南 閱讀(858) | 評論 (0)編輯 收藏
    誰不知道構架?

        作為一個技術人員,誰不知道構架?

        前一段時間公司找開發人員談心,有位領導問一位開發人員,大致對話如下:

        A:“你了解咱們現在產品的構架嗎?能不能談談你對構架的看法?”

        B:“… …”

        A:“說說看吧~”

        B:“我不懂構架!構架是什么?咱們現在的產品還有構架呢?”

        作為一個有3年工作經驗,2家公司經歷的VC程序員來說,我覺得,這幾年的積累是白做了!這樣的思想永遠都只能停留在寫程序上~

        一個產品沒有構件,就如同一個人沒有靈魂一樣!他不是沒有,只是你沒有去思考,沒有去發現他而已!

        我記得袁洪剛說過,“一個偉大的產品背后一定有一個偉大構架師!”,我堅信這一點~產品好壞一方面決定于對現實問題的解決程度,另一方面是構架的好壞!

        幾年前,中國的軟件公司里面很少出現構架師/架構師這樣的角色,這幾年開始有改觀了,越來越多的人開始認識到很多錯誤的問題,其實從一開始就是錯的。很多事情并沒有謀定而后動。一味的追求簡單,到最后變成了下線很簡單了!

       說自己不知道構架的開發人員有兩種,新手和沒有思想的新手,拼命的同時我們也應該停下腳步想想,抬起頭看看天空。別總把經驗的缺失都歸結于時間的長短,更應該想想自己是否真的積累過。

    posted @ 2009-07-03 16:33 阿南 閱讀(1666) | 評論 (6)編輯 收藏
    EJB3下無狀態會話Bean發布為WebService

        無狀態會話Bean發布為WebService是非常有意義的,因為如果我們將每一個EJB模塊按照SOA的思想做成一個一個獨立的服務模塊(這里不討論SCA,我認為Apache的SCA框架還不夠強大,文檔還不夠全面),同樣的代碼在JavaEE體系之內的應用程序可以直接使用EJB3直接訪問,JavaEE體系之外的應用程序可以直接使用WebService訪問,這一點是非常有意義的。

        下面要考慮的就是如何只寫一份代碼,讓它能做兩樣事情。

        網上有大量的使用EJB3發布WebService的教程,但是這些教程都是一個人寫的,基本上沒有太大的參考價值。最重要的是,他寫的元注釋都是寫在實現類上的,接口上沒有做任何描述。這種做法有兩個問題,第一如果你的會話Bean使用了EM,那么麻煩了,JAXB在做綁定的時候不認識接口;第二WSDL文件的描述實際上應該是基于接口的描述,應該和實現類沒有太大的關系。

        看看網上流行的代碼:

     

    1@WebService(name = "PurchaseArrival", serviceName = "PurchaseArrivalService"
    2@SOAPBinding(style = SOAPBinding.Style.RPC) 
    3public class PurchaseArrivalImpl implements IPurchaseArrival {

     

    注意,基于RPC綁定模式下List,Set一類的接口都是不可傳輸的,這點會很麻煩,要用必須用實現類。

    看看我的代碼:

    接口:

     

    1@WebService(name = "ILogRemoteService",targetNamespace = "http://www.glnpu.com/dmp/xml"
    2@SOAPBinding(style = SOAPBinding.Style.DOCUMENT) 
    3public interface  ILogRemoteService {

     

    實現類:

     

    1@Stateless 
    2@Remote(ILogRemoteService.class
    3@WebService(endpointInterface = "com.glnpu.dmp.server.service.base.log.ILogRemoteService",serviceName = "LogRemoteService"
    4public class LogRemoteService extends BaseService implements ILogRemoteService {

     

    這個WebService是針對接口發布出去,而且使用的DOCUMENT樣式,可以直接使用List、Set的接口。

    這個WebService生成的WSDL文件很有意思:

     

     1<definitions name="LogRemoteService" targetNamespace="http://impl.log.base.service.server.dmp.glnpu.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://www.glnpu.com/dmp/xml" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.log.base.service.server.dmp.glnpu.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     2
     3<import location="http://127.0.0.1:8080/LogRemoteServiceService/LogRemoteService?wsdl&resource=ILogRemoteService_PortType25057.wsdl" namespace="http://www.glnpu.com/dmp/xml" />
     4
     5<service name="LogRemoteService">
     6
     7<port binding="ns1:ILogRemoteServiceBinding" name="LogRemoteServicePort">
     8
     9<soap:address location="http://127.0.0.1:8080/LogRemoteServiceService/LogRemoteService" />
    10
    11</port>
    12
    13</service>
    14
    15</definitions>
    16
    17

     

    里面有import來指引到真正的WSDL文件。這樣很容易將會話Bean變成WS~一樣的代碼兩樣的功能,超值!

    posted @ 2009-07-02 13:54 阿南 閱讀(1946) | 評論 (0)編輯 收藏
    Wazaabi 2.0 讓我看到了自定義界面設計器的希望

        Wazaabi 2.0 基于 Eclipse3.4/EMF/GEF 的動態界面設計和現實組件,依賴EMF進行界面描述,依賴GEF進行界面顯示。

        比較起XUI,XSWT,它的設計器更加的完善,功能比較1.0版本也有很大的提高,而且作者也提出了使用EMF進行數據綁定的思路和實現。

        麻煩的是它本身只提供了Fill和Row兩種布局,Button、Text、List、Label這些基本控件。還好作者的文檔功底不錯,簡單幾張圖就把自己的設計思路描述的清清楚楚,高手所為,贊一個!

       在它基礎上可以很簡單的進行擴展,而且比擴展VE要簡單的多~這是我喜歡的!現在對它的使用本人還是處于觀望態度,一方面等待它的持續更新,另一方面等待E4的激動人心的放出!

        有興趣的朋友可以看看http://www.wazaabi.org/index.php?title=Main_Page

    posted @ 2009-07-01 10:13 阿南 閱讀(1991) | 評論 (1)編輯 收藏
    不怕錯,就怕不認錯

        明顯第一種構架比第二種構架好很多,但是我們偏偏在第二種構架上面掙扎了半年的時間。

        總是有各種各樣的接口和推辭說業務太復雜,客戶催的太緊,沒辦法把業務放到服務器上,成本太高了!已經是2009年了,10年前大家就意識到維護是關鍵,業務一定要封裝,不能分散于客戶端… …10年后的今天我們竟然還在掙扎!完全沒有思想,完全沒有設計,完全沒有接口,完全沒有OO… …!!!

        項目告一段落我要拼命的重構,徹底抽離公共業務,徹底剝離特殊業務,我要OO,我要接口,我要設計,我甚至還要SOA!

        我錯了!我認錯!可是為什么公司還有那么多的人還是不認錯呢?做了10年的產品,10年前的東西竟然比10年后的東西還好用!做了10年還是死纏爛打在10年前的原型之上~他們比我更悲哀~

    posted @ 2009-06-30 16:36 阿南 閱讀(491) | 評論 (3)編輯 收藏
    Lock wait timeout exceeded; try restarting transaction

       粗心大意,老犯錯!

       今天上午在調試EJB3調用WebService時一直遇到MySQL報出的這個問題。郁悶壞了,只是執行了一句update而已,就導致這樣錯誤… …

       經過半個小時排查,終于找到問題所在了。原因是分布式事務引起的。

       場景描述:

    EJB3操作A表-->調用WebService-->WebService操作B表

        在操作A表的時候需要等待WebService的調用,如果沒有異常,則可以提交事務,如果出現異常,則不能提交事務;

        在操作B表的時候需要處理異常;

        一個簡單的分布式事務,一般情況下是沒有問題的~但是由于我的粗心大意,做成了EJB3也在操作B表,這樣就導致了表被鎖死的情況出現~真是郁悶啊!

    posted @ 2009-04-23 21:41 阿南 閱讀(4285) | 評論 (0)編輯 收藏
    如何使用代碼重啟RCP程序?

        以前我們的產品重啟RCP應用程序的時候都是找到本地路徑的EXE程序,然后使用:

    1Runtime runtime = Runtime.getRuntime();
    2runtime.exec("cmd.exe /c " + excuteStr );


    重新啟動應用程序,太復雜,而且上次打開的參數都會丟失。

        今天早上翻看了一下Eclipse的org.eclipse.update.ui CVS,找到了:
    PlatformUI.getWorkbench().restart();
    使用這個重新啟動RCP應用程序,非常的方便,而且參數都在,即使在開發環境下也一樣沒有問題!

    posted @ 2009-03-17 18:53 阿南 閱讀(1581) | 評論 (1)編輯 收藏
    How to show taskbar icon when use splash?

        這個問題非常的重要!
        做過RCP開發的朋友應該都遇到過,使用AbstractSplashHandler做的登陸界面,在windows的任務欄上面是不會顯示的,這個問題讓客戶用起來很麻煩,總是動不動就找不到登陸界面了!現在有解決辦法了~

     1Here is the modified Code of the InteractiveSplashHandler Class:
     2
     3
     4    private Shell splash;
     5
     6
     7    public void init(final Shell splash) {
     8        // Shell replaced by one with task bar icon
     9        // (old Style: SWT.TOOL, new Style: SWT.NO_TRIM)
    10        replaceShell(splash);
    11        // Store the shell
    12        super.init(getSplash());
    13        // Configure the shell layout
    14        configureUISplash();
    15        // Create UI Colors and Fonts
    16        createColorsAndFonts();
    17        // Create UI
    18        createUI();
    19        // Create UI listeners
    20        createUIListeners();
    21        // Force the splash screen to layout
    22        splash.dispose();
    23        getSplash().layout(true);
    24        // Keep the splash screen visible and prevent the RCP application from
    25        // loading until the close button is clicked.
    26        doEventLoop();
    27    }

    28
    29
    30    private void replaceShell(Shell splash) {
    31        Shell newSplash = new Shell(Display.getCurrent(), SWT.NO_TRIM);
    32        newSplash.setBackgroundImage(splash.getBackgroundImage());
    33        newSplash.setBounds(splash.getBounds());
    34        newSplash.setFont(splash.getFont());
    35        newSplash.setVisible(true);
    36        setSplash(newSplash);
    37    }

    38
    39
    40    public Shell getSplash() {
    41        return splash;
    42    }

    43
    44
    45    public void setSplash(Shell splash) {
    46        this.splash = splash;
    47    }

    48
    49

    稍稍進行改造,就可以了~

    posted @ 2009-03-15 20:59 阿南 閱讀(1308) | 評論 (0)編輯 收藏
    VE真的回來了

        VE已經死亡很久了,整個Eclipse社區中,最悲壯的真的要屬VE了。
        偉大的目標,沒落的貴族!記得去年在北京的時候,經常有朋友問我VE怎么安裝。呵呵VE2.0開始安裝真的很復雜,偌大的Eclipse-WIKI里面還真的沒有寫多少關于VE安裝的內容。
        去年下載過VE的源碼,打算在VE的基礎上做一個自己的設計工具,但是研究了很久,發現CVS上的源碼都過于陳舊了,然后就再也沒有關注過它了。
        很久沒有真正的關注過Eclipse了,今天上來看看,發現VE真的回來了!
        現在VE的領導者是深圳的亞松(在西安有分公司,我還真想去試試... ...),而亞松最讓我崇拜的大牛就是Yves YANG,呵呵,EclipseWord的大牛哦!
        我在自己公司的產品里面也引入了建模的概念,下一步就是根據模型來生成界面,再下一步就是改造VE,讓二次開發人員開發起來更容易更加簡單。
        祝福VE,希望有了亞松,VE會更好。
     

    預告下一個系列文章:
        企業信息系統建模的思考;
        新VE源碼分析;
       

    posted @ 2009-03-15 15:38 阿南 閱讀(1511) | 評論 (1)編輯 收藏
    最好的軟件界面繪制工具http://www.balsamiq.com/

    我見過最好的軟件界面繪制工具http://www.balsamiq.com/
    真正能達到又快又好!





    posted @ 2009-02-11 11:38 阿南 閱讀(2390) | 評論 (0)編輯 收藏
    初談激情

        做人何懼艱險,豪情不變年復一年,做人有苦有甜,善惡分開兩邊,都為夢中的明天!
        上面這段簽名是抄老莫的,每讀一次都會有不同的體會。
        沒有維護Blog已經有兩個多月了,這兩個月一直在北京出差,已經待了兩個月了,還得再待一個月!每次出差離開西安總是感覺不舒服,而且從心里要好長時間才能適應,所以就一直沒有維護Blog。
        晚上和一位美女吃飯,聊天中突然聊到了這個問題,仔細想想為什么做什么都覺得沒有意思?為什么會不適應外界環境的改變?為什么覺得一切都不爽?
        是因為沒有了激情,最近缺少了激情!缺少了創造的激情,缺少了生活的激情,缺少了工作的激情,缺少了寫Blog的激情... ...
        重拾激情,這才是重要的!做人何懼艱險!人生路上本來就充滿了艱險,要勇敢面對,無論是失意還是快樂... ...何必在乎得失,終究一切都會過去!抓緊時間,去實現自己夢想!

    posted @ 2008-07-20 23:45 阿南 閱讀(482) | 評論 (4)編輯 收藏
    Eclipse3.3-3.4MX多國語言項目放出

        老版本的Eclipse多國語言項目只維護到3.2.1版本,以后就再也沒有維護了,我覺得主要的問題是,語言包太大,一個包中會有多種語言,對于RCP版本的產品漢化起來很不舒服,明明我只要中文,結果要加入N個語言進來,而且還是20M的包~
        Eclipse的http://download.eclipse.org/eclipse/downloads/最近剛剛放出一個叫做Babel project的項目,這個項目就是在解決國際化的問題,這個項目旨在為每一個插件提供獨立的單語言包,這樣在做RCP項目的時候,可以根據需要,打不同的包就可以了~!
        周五的下午測試了一下,漢化率絕對在99%以上,而且很多地方的漢化還是很到位的~再有哪些客戶看不懂的地方的了~
        只是有一個很小的麻煩,就是RCP原來的異常對話框中的內容,每一句后面都會有\n,莫非多國語言的時候\n被轉義了?
        希望可以得到改進!

    posted @ 2008-04-27 09:33 阿南 閱讀(3172) | 評論 (4)編輯 收藏
    來自Neil Bartlett 的OSGI BOOK 一個預覽版本放出

        Neil Bartlett的當下工作就是完成《OSGi in Practice》,今天他在Blog中已經放出了本書的一個預覽版本(第二章)。一下是書的目錄:

  • Introduction
  • First Steps in OSGi
  • Bundle Dependencies
  • Introduction to Services
  • Example: Mailbox Reader GUI
  • The Whiteboard Pattern
  • Declarative Services
  • The Extender Pattern
  • Integrating Third-party Libraries
  • Building Web Applications

    從PDF的授權看是“署名的,非商業的,可流傳的”,我估計這本書上市的時間應該很近了,而且官方的PDF版本也會同步推出的~

    喜歡的朋友可以下下來看看,寫的很詳細,個人認為是本好書,而且此作者應該是Eclipse基金會的人,所以對OSGI的理解也不錯有什么問題~

  • ps:連接地址:http://neilbartlett.name/blog/osgibook/

    posted @ 2008-04-18 12:41 阿南 閱讀(1640) | 評論 (3)編輯 收藏
    SQL文件中有Functions,Type如何在sqlplus中執行?

        SQL文件中有Functions,Type,那么在sqlplus中要start直接執行SQL文件怎么辦?例如:

    CREATE OR REPLACE FUNCTION strcat(input varchar2 )
    RETURN varchar2
    PARALLEL_ENABLE AGGREGATE USING strcat_type;

        將上面的Functions寫入SQL文件中,然后在sqlplus中用start執行此文件,后果是此Functions并沒有被創建到數據庫中,在后面加上commit;也是沒有用處的,提示的效果是SQL并沒有結束,sqlplus并沒有真正執行。

        這怎么辦?Google了老半天,也沒有人寫到這個問題,但是看看人家寫Functions和我寫的有一點點區別,修改一下!

    CREATE OR REPLACE FUNCTION strcat(input varchar2 )
    RETURN varchar2
    PARALLEL_ENABLE AGGREGATE USING strcat_type;
    /

        在Functions最后一行加上一個/,再執行就OK了~看來sqlplus是把/作為一個Functions或者Type的結束符了!大家注意了!

    posted @ 2008-04-15 16:04 阿南 閱讀(1867) | 評論 (2)編輯 收藏
    注意!Shell.open()

        Shell.open()非常重要!

        今天在做SWT中顯示OCX控件,照著Demo寫的,但是不知道為什么每次執行到:Variant pVarResult = auto.invoke(dispIdMember, rgvarg);

       JVM都會直接退出~error如下:

    #
    # An unexpected error has been detected by HotSpot Virtual Machine:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x73d321b9, pid=3696, tid=2208
    #
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_04-b05 mixed mode, sharing)
    # Problematic frame:
    # C  [MFC42.DLL+0x21b9]
    #
    # An error report file with more information is saved as hs_err_pid3696.log
    #
    # If you would like to submit a bug report, please visit:
    #   http://java.sun.com/webapps/bugreport/crash.jsp
    #

    [error occurred during error reporting, step 270, id 0xc0000005]

    尋便了網絡也沒有解決辦法,剛開始以為是JVM版本的問題,于是換了3個版本都是同樣的問題~真是郁悶!

       最后通過和Demo代碼的比較,發現Demo中有一句shell.open(),注釋掉此句,Demo也是引起JVM退出!在代碼中加入shell.open(),搞定!

       原來這個open方法還有這么多的玄機啊,但是javadoc上卻只字未提!

    posted @ 2008-04-14 20:10 阿南 閱讀(2086) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 国产成人无码区免费内射一片色欲 | 毛片视频免费观看| 亚洲欧洲一区二区| 四虎影视成人永久免费观看视频| 国精无码欧精品亚洲一区| 国精产品一区一区三区免费视频 | 日本一道一区二区免费看| 亚洲精品理论电影在线观看| 午夜一级毛片免费视频| 久久亚洲精品无码av| 亚洲精品tv久久久久| 久久久精品国产亚洲成人满18免费网站| 亚洲AV无码一区二三区| 成人免费一区二区三区| 亚洲午夜未满十八勿入| 在线看片免费不卡人成视频| 亚洲乱码av中文一区二区| 免费亚洲视频在线观看| 国产免费内射又粗又爽密桃视频| 亚洲无人区一区二区三区| 在线看片免费人成视久网| 亚洲丝袜中文字幕| 日韩电影免费在线观看视频| 特级做a爰片毛片免费看| 久久精品国产亚洲av麻| 免费观看美女用震蛋喷水的视频| 亚洲最大av资源站无码av网址| 免费一级特黄特色大片在线| 成人免费乱码大片A毛片| 亚洲春色另类小说| 免费一区二区三区四区五区| 99久久免费国产精品热| 亚洲一级免费视频| 国产成人高清亚洲| 16女性下面无遮挡免费| 免费亚洲视频在线观看| 亚洲va在线va天堂va888www| 真实乱视频国产免费观看| 国产在线播放线91免费| 亚洲中文字幕一二三四区苍井空| 亚洲麻豆精品国偷自产在线91|