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

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

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

    Loading...

    java .net

    2009年10月19日

    最近在學(xué)習(xí)如何使用maven,做了一個(gè)demo(基于S2S整合),總結(jié)一下與大家分享,期待與大家討論以期快速進(jìn)步。

    一、maven介紹

    1、maven是什么

    http://maven.apache.org/
    官方解釋?zhuān)篗aven是一個(gè)項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型 (Project Object Model),一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(Project Lifecycle),一個(gè)依賴(lài)管理系統(tǒng)(Dependency Management System),和用來(lái)運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。

    2、使用maven有什么好處,解決什么問(wèn)題

    jar統(tǒng)一管理了:

    如果建立了一個(gè)本地的jar倉(cāng)庫(kù),那么所有人都是從倉(cāng)庫(kù)里面下載jar,拷貝項(xiàng)目時(shí)只需要copy幾K的源碼即可!其次,依然是倉(cāng)庫(kù),使得每個(gè)人的jar版本都是一致的,不會(huì)出現(xiàn)因?yàn)榘姹静煌鸬哪涿畹腻e(cuò)誤。
    項(xiàng)目的自動(dòng)化:

    只需要mvn package命令,在eclipse里面,看run里面,只需要選擇就行了!它會(huì)自動(dòng)的從編譯,測(cè)試開(kāi)始,一直到打包,自動(dòng)的運(yùn)行,保證你的包沒(méi)有問(wèn)題。

    我們?cè)谧龆鄠€(gè)不同的Java項(xiàng)目時(shí),每個(gè)項(xiàng)目所用到的庫(kù)文件基本都是大同小異的,通常的做法是每個(gè)項(xiàng)目下面都會(huì)復(fù)制一份這些庫(kù)文件,甚至?xí)堰@些庫(kù)文件都提交到vss上去,這樣帶來(lái)的問(wèn)題不僅是增大了項(xiàng)目占用的硬盤(pán)空間,而且也使包管理很混亂。

    我們可以這樣查看jar包的依賴(lài)關(guān)系,是不是很爽?!
    image

    還可以單元測(cè)試覆蓋率報(bào)表:

    image

    2、helloword

    1、下載Maven 附件中的maven3.jar 解壓到任意目錄

    2、安裝eclipse插件m2eclipse

    方式一:在線安裝 更新地址是:http://m2eclipse.sonatype.org/sites/m2e
    方式二:本地安裝 help-->install new softeware-->add-->name填寫(xiě)maven-->archive..-->jar:file:/../m2e.zip!/-->ok
    安裝完成重啟eclipse,在Window-->Preferences-->Maven下配置

    image

    禁用eclipse啟動(dòng)時(shí)更新maven index 主要是每次eclipse啟動(dòng)時(shí)都更新很煩人

    image

    添加自己的maven

    3、新建maven項(xiàng)目

    按照下圖步驟

    image

    • groupId定義了項(xiàng)目屬于哪個(gè)組,這個(gè)組往往和項(xiàng)目所在的組織或公司存在關(guān)聯(lián)。譬如在googlecode上建立了一個(gè)名為myapp的項(xiàng)目,那么groupId就應(yīng)該是com.googlecode.myapp.
    • artifactId定義了當(dāng)前Maven項(xiàng)目在組中唯一的ID,groupId為com.googlecode.myapp的例子中,你可能會(huì)為不同的子項(xiàng)目(模塊)分配artifactId,如myapputil、myappdomain、myappweb等。
    • version指定了項(xiàng)目當(dāng)前的版本——1.0SNAPSHOT。SNAPSHOT意為快照,說(shuō)明該項(xiàng)目還處于開(kāi)發(fā)中,是不穩(wěn)定的版本。隨著項(xiàng)目的發(fā)展,version會(huì)不斷更新,如升級(jí)為1.0、1.1SNAPSHOT、1.1、2.0等。
    • name元素聲明了一個(gè)對(duì)于用戶(hù)更為友好的項(xiàng)目名稱(chēng)

    點(diǎn)擊Finish完成

    4、maven項(xiàng)目結(jié)構(gòu)

    下圖為基于maven項(xiàng)目結(jié)構(gòu),這里跟我們以前的項(xiàng)目結(jié)構(gòu)很不一樣,以前的項(xiàng)目結(jié)構(gòu)約定俗成的只有兩塊 一個(gè)src 一個(gè)webRoot,當(dāng)然這些都可以隨意配置,比如WebRoot有的叫WebContent

    image
    這里maven倡導(dǎo)約定優(yōu)于配置,maven的約定就是以下目錄結(jié)構(gòu)
    src/main/java 下存放java類(lèi)
    src/main/webapp 下存放頁(yè)面文件(需要手動(dòng)創(chuàng)建)
    src/main/resources 下存放資源文件
    src/test/java 下存放單元測(cè)試代碼
    src/test/resources 下存放測(cè)試資源文件

    5、添加jar包

    只需維護(hù)pom.xml
    比如添加struts2-core
    <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.0.11.2</version>
    </dependency>

    我在172.20.66.230上部署了一個(gè)maven倉(cāng)庫(kù),訪問(wèn)地址http://172.20.66.230:8081/nexus/

    maven會(huì)根據(jù)pom.xml中的配置訪問(wèn)230的倉(cāng)庫(kù)下載對(duì)應(yīng)的jar source 以及doc,下載到哪?這要看maven3/conf/settings.xml 55:

    <localRepository>F:/Maven3/repository</localRepository>

    6、編寫(xiě)代碼

    附件中有一個(gè)struts2+spring 的demo,解壓然后import eclipse

    在項(xiàng)目名上右鍵 run as -->Run Configurations

    image

    按圖配置,點(diǎn)擊Run即可。瀏覽器中訪問(wèn)http://localhost:8080/MavenSSH/

    Maven運(yùn)行的生命周期

    • 復(fù)制src/main/resources資源文件到輸出目錄

    • 編譯src/main/java下的源代碼

    • 復(fù)制src/test/resources下的測(cè)試用資源文件到測(cè)試輸出目錄

    • 編譯src/test/java下的測(cè)試用例

    • 運(yùn)行測(cè)試用例

    • 打包生成

    ===========================

    • 以上是一個(gè)簡(jiǎn)單的例子,只是用它獲取依賴(lài)的jar包 。maven還有很多諸如項(xiàng)目管理方面的功能,比如文檔編制、發(fā)布管理、配置管理...

    • 第一個(gè)次運(yùn)行項(xiàng)目會(huì)比較慢,因?yàn)橐螺djar包。

    • MavenSSH.rar是一個(gè)struts2與spring集成的例子,頁(yè)面用到了sitemesh div+css 也值得學(xué)習(xí)

    • 項(xiàng)目debug是運(yùn)行在jetty(類(lèi)似于tomcat的容器)中。

    posted @ 2011-04-18 16:09 豬 閱讀(1332) | 評(píng)論 (5)編輯 收藏

    如果部署GAE時(shí)正在upload files時(shí)退出,下次部署時(shí)會(huì)報(bào)錯(cuò)

    Another transaction by user is already in progress for this app and major version. That user can undo the transaction with appcfg.py's "rollback" command

     

    找到eclipse中的GAE SDK目錄

    如:D:\eclipse\plugins\com.google.appengine.eclipse.sdkbundle.1.3.8_1.3.8.v201010161055\appengine-java-sdk-1.3.8\bin

     

    執(zhí)行命令

    appcfg.cmd rollback 后面跟gae項(xiàng)目war所在目錄

    如 appcfg.cmd rollback D:/spring/eclipse_workspace/taobaoke/war

     

    執(zhí)行:

    ********************************************************
    Warning: Future versions of the Dev App Server will require Java 1.6 or later. P
    lease upgrade your JRE.
    ********************************************************
    Reading application configuration data...
    2010-11-15 9:34:23 com.google.apphosting.utils.config.AppEngineWebXmlReader read
    AppEngineWebXml
    信息: Successfully processed D:/spring/eclipse_workspace/taobaoke/war\WEB-INF/ap
    pengine-web.xml
    2010-11-15 9:34:23 com.google.apphosting.utils.config.AbstractConfigXmlReader re
    adConfigXml
    信息: Successfully processed D:/spring/eclipse_workspace/taobaoke/war\WEB-INF/we
    b.xml
    2010-11-15 9:34:23 com.google.apphosting.utils.config.AbstractConfigXmlReader re
    adConfigXml
    信息: Successfully processed D:/spring/eclipse_workspace/taobaoke/war\WEB-INF/cr
    on.xml
    Beginning server interaction for taokeapp...
    0% Rolling back the update.
    Success.
    Cleaning up temporary files...

    posted @ 2010-11-15 09:55 豬 閱讀(425) | 評(píng)論 (0)編輯 收藏

    在網(wǎng)上無(wú)意搜到一個(gè)用Ext實(shí)現(xiàn)的淘寶客,恩 ,咱用GWT做一個(gè)車(chē)輪

    下了淘寶的 SDK for java就開(kāi)干 參考API文檔按部就班

    在淘寶的沙箱里測(cè)試,很順利,乘勝前進(jìn),到正式環(huán)境下測(cè)試

    問(wèn)題來(lái)了

    invalid signature

    網(wǎng)上搜了一通,有說(shuō)時(shí)間戳不對(duì),果不其然,GAE使用的是標(biāo)準(zhǔn)時(shí)間,整整差了8小時(shí),遂在獲得的當(dāng)前時(shí)間上加了8小時(shí),OK

    invalid signature 可能的另一個(gè)原因是APP_KEY 或 APP_SERCET不正確,仔細(xì)檢查

     

    調(diào)用 taobao.item.get

     

    1 TaobaoClient client=new DefaultTaobaoClient(TaobaokeConstant.SANDBOX_URL, TaobaokeConstant.APP_KEY, TaobaokeConstant.APP_SERCET);
    2 ItemcatsGetRequest req=new ItemcatsGetRequest();
    3 java.util.Calendar c=java.util.Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
    4 c.add(Calendar.HOUR, 8);
    5 req.setTimestamp(c.getTime().getTime()) ;
    6 req.setParentCid(new Long(0));
    7 ItemcatsGetResponse response=client.execute(req);
    8 return response.getItemCats();

     

    調(diào)用 taobao.taobaoke.items.get

     
    1 TaobaoClient client=new DefaultTaobaoClient(TaobaokeConstant.SANDBOX_URL, TaobaokeConstant.APP_KEY,TaobaokeConstant.APP_SERCET);
    2 TaobaokeItemsGetRequest req=new TaobaokeItemsGetRequest();
    3 req.setFields("num_iid,title,nick,pic_url,price,click_url,commission,commission_rate,commission_num,commission_volume,shop_click_url,seller_credit_score,item_location,volume,taobaoke_cat_click_url,keyword_click_url");
    4 req.setCid(Long.parseLong(cid));
    5 req.setNick(TaobaokeConstant.NICK);
    6 req.setSort("commissionRate_desc");
    7 TaobaokeItemsGetResponse response=client.execute(req);
    8 return response.getTaobaokeItems();
     
    想用GAE JCache API 加入緩存以減輕壓力,但屢試不行,從緩存中取 的時(shí)候報(bào)錯(cuò)
    沒(méi)找到原因
     
    改用自己寫(xiě)的緩存,然后用App Engine Cron 服務(wù)管理緩存
     
    corn.xml
     
    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <cronentries>
    3   <cron>
    4     <url>/cron/recache</url>
    5     <description>Repopulate the cache every 1 hours</description>
    6     <schedule>every 1 hours</schedule>
    7   </cron>
    8 </cronentries>
    posted @ 2010-10-21 11:33 豬 閱讀(743) | 評(píng)論 (0)編輯 收藏
    posted @ 2010-06-13 09:54 豬 閱讀(434) | 評(píng)論 (0)編輯 收藏
         摘要: 01 var $j = jQuery.noConflict(); 02 //使用此方法驗(yàn)證所有text textarea 是否含有非法字符 03 $j(document).ready(function(){ 04    $j("input[type='text']").each(functio...  閱讀全文
    posted @ 2010-06-13 09:53 豬 閱讀(2047) | 評(píng)論 (1)編輯 收藏
    一個(gè)喜歡coding的程序員,工作在北京,從事java web 開(kāi)發(fā),喜歡JavaScript,平時(shí)關(guān)注技術(shù)新聞,試用各種新框架、新語(yǔ)言,學(xué)海無(wú)涯,有時(shí)也迷茫
    平時(shí)沒(méi)事翻翻編程思想、瀏覽各位同行的blog,將各種實(shí)際中的技巧、方法拿來(lái)養(yǎng)眼,并用到自己的項(xiàng)目中感受快樂(lè)
    頭兒的評(píng)價(jià):不管遇到什么難題,都會(huì)鉆窟窿盜洞把它解決掉

    求職簡(jiǎn)歷
    posted @ 2010-05-19 14:58 豬 閱讀(282) | 評(píng)論 (0)編輯 收藏
    Compiling module com.capinfo.cdss.gwt.olap.Olap
    Compiling 12 permutations
    Compiling permutation 0...
    Compiling permutation 1...
    Compiling permutation 2...
    Compiling permutation 3...
    Compiling permutation 4...
    Compiling permutation 5...
    Compiling permutation 6...
    Compiling permutation 7...
    Compiling permutation 8...
    Compiling permutation 9...
    Compiling permutation 10...
    Compiling permutation 11...
    Compile of permutations succeeded
    Linking into D:\spring\workspace\fusionchart\war\olap.
    Link succeeded
    Compilation succeeded -- 291.925s

    在#.gwt.xml中添加支持Firefox
    <!-- User Agent -->
    <set-property name="user.agent" value="gecko1_8" /> 
    編譯的確變得很快,但I(xiàn)E中果真不好使
    posted @ 2010-05-19 10:19 豬 閱讀(1160) | 評(píng)論 (1)編輯 收藏
    GWT設(shè)置UncaughtExceptionHandler 以捕獲為捕捉的異常,這gwt在host mode編譯后的JavaScript如果出現(xiàn)錯(cuò)誤,No errors in Hosted Mode and Compiled localy, but deployed to tomcat yields in errors
    這是惱人,加上UncaughtExceptionHandler起碼有一絲線索
    GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() {
        public void onUncaughtException(Throwable throwable{
            String text = "Uncaught exception: ";
            while (throwable != null{
                StackTraceElement[] stackTraceElements = throwable
                        .getStackTrace();
                text += throwable.toString() + "\n";
                for (int i = 0i < stackTraceElements.lengthi++) {
                    text += "    at " + stackTraceElements[i] + "\n";
                }
                throwable = throwable.getCause();
                if (throwable != null{
                    text += "Caused by: ";
                }
            }
            System.err.print(text);
            text = text.replaceAll(" ", " ");
            Window.alert("系統(tǒng)錯(cuò)誤:"+text);
        }
    });
    posted @ 2010-05-19 10:18 豬 閱讀(371) | 評(píng)論 (0)編輯 收藏
    java.lang.IllegalStateException:Should only call onDetach when the widget is attached to the browser's document

    這個(gè)異常是在com.google.gwt.user.client.ui.Widget protected void onDetach() 方法拋出的
    當(dāng)頁(yè)面重新加載或離開(kāi)頁(yè)面時(shí)會(huì)執(zhí)行這個(gè)方法
    如果系統(tǒng)沒(méi)有正常初始化,會(huì)有這個(gè)異常
    郁悶的是No errors in Dev Mode but Compiled localy and deployed to tomcat in errors
    posted @ 2010-05-19 10:18 豬 閱讀(507) | 評(píng)論 (0)編輯 收藏

    private void showWaitMess(Frame window){
        final MessageBox box = MessageBox.wait("等待", "正在查詢(xún)數(shù)據(jù),請(qǐng)稍后...", "查詢(xún)中...");
        final Element frame = window.getElement();
        final Timer t = new Timer() {
            @Override
            public void run() {
                if (ready(frame)) {
                    this.cancel();
                    box.close();
                }
            }
        };
        t.scheduleRepeating(100);
    }
    private native boolean ready(Element frame)/*-{
        return frame.contentWindow.document.readyState=="complete";
    }-*/;
    posted @ 2010-05-19 10:15 豬 閱讀(297) | 評(píng)論 (0)編輯 收藏
    又漲見(jiàn)識(shí)了
    IE8報(bào)下面錯(cuò)誤,而且是我的機(jī)器不報(bào),同事的機(jī)器報(bào),試了4臺(tái),兩個(gè)報(bào),兩個(gè)不報(bào),IE版本都一樣,沒(méi)想明白
    解決:1、查看是否有未關(guān)閉的html標(biāo)簽,比如<table>而沒(méi)有</table> (我就是這個(gè)原因)
    2、是否在頁(yè)面未加載完前js代碼操作了body里的元素,將相關(guān)js代碼移到</body>后面



    網(wǎng)頁(yè)錯(cuò)誤詳細(xì)信息

    用戶(hù)代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
    時(shí)間戳: Wed, 14 Apr 2010 08:33:56 UTC


    消息: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
    行: 0
    字符: 0
    代碼: 0
    URI:  


    http://support.microsoft.com/kb/927917
    posted @ 2010-05-19 10:11 豬 閱讀(1855) | 評(píng)論 (0)編輯 收藏

           本來(lái)系統(tǒng)是由JSP+潤(rùn)乾報(bào)表做的,做出一版來(lái)給人家客戶(hù)演示,人家覺(jué)得體驗(yàn)不夠,也沒(méi)不夠絢麗,要求回去返工,主要是因?yàn)樗麄兛催^(guò)他們兄弟部門(mén)的一個(gè)類(lèi)似系統(tǒng),要求向那個(gè)系統(tǒng)靠攏,可殊不知人家那是.net做的C/S,交互體驗(yàn)當(dāng)然好了。

          面臨一個(gè)抉擇,換.net平臺(tái)做winform,然后用sql server Analysis Services 的現(xiàn)成組件,這要技術(shù)上肯定可行,但是需要購(gòu)買(mǎi)一堆微軟的東西,錢(qián)啊。

          正好以前看過(guò)一些GWT的資料,以及基于GWT的開(kāi)源框架,它的界面效果倒是可以滿(mǎn)足客戶(hù)的要求,遂毛遂自薦,想試試用GXT實(shí)驗(yàn)是否能實(shí)現(xiàn)要求的功能和效果,同時(shí)也有其他同事考察了SAP的BI,水晶E表,IBM的Cognos,結(jié)果因功能實(shí)現(xiàn)不夠或者商務(wù)問(wèn)題擱淺

          好像春節(jié)后沒(méi)多久就開(kāi)始搞GWT,現(xiàn)在終于實(shí)現(xiàn)了(或是變相實(shí)現(xiàn)了)要求的功能、滿(mǎn)足了客戶(hù)的意見(jiàn),很有成就感,期間經(jīng)歷了兩次重構(gòu),現(xiàn)在采用的GXT提供的MVC模型,底層數(shù)據(jù)訪問(wèn)是通過(guò)調(diào)用潤(rùn)乾報(bào)表API,將潤(rùn)乾報(bào)表運(yùn)算結(jié)果轉(zhuǎn)化為一個(gè)List,然后交給GXT在頁(yè)面展現(xiàn)。

          頁(yè)面功能上,GXT挺全面,Grid列排序,隱藏顯示特定列,樹(shù)形展開(kāi)收縮,用open chart封裝的統(tǒng)計(jì)圖表,數(shù)據(jù)鉆取,列標(biāo)題分組,拖拽形式動(dòng)態(tài)設(shè)置列維度、行維度以實(shí)現(xiàn)靈活查詢(xún),將靈活查詢(xún)行列維度保存起來(lái)供以后隨時(shí)打開(kāi),將結(jié)果到處Excel、PDF、Word,動(dòng)態(tài)設(shè)置查詢(xún)條件的顯示隱藏,動(dòng)態(tài)的進(jìn)度條提示等等

          接下來(lái)還要融入GIS,實(shí)現(xiàn)報(bào)表到地圖,地圖到報(bào)表。

          值得注意的是所有這些功能都是在一個(gè)窗口中完成的,實(shí)現(xiàn)了菜單、維度定義、報(bào)表、統(tǒng)計(jì)圖功能的融合,不用客戶(hù)點(diǎn)來(lái)點(diǎn)去,一步了然。

    posted @ 2010-05-19 10:11 豬 閱讀(456) | 評(píng)論 (0)編輯 收藏

    OLAP(On_line Analytical Processing聯(lián)機(jī)分析處理) 和 OLTP(On_line Transaction Processing聯(lián)機(jī)事務(wù)處理)

    OLTP:On_line Transaction Processing 聯(lián)機(jī)事務(wù)處理 ,以業(yè)務(wù)處理為主

    OLAP:On_line Analytical Processing     聯(lián)機(jī)分析處理,則是專(zhuān)門(mén)為支持復(fù)雜的分析操作而設(shè)計(jì)的,側(cè)重于對(duì)決策人員和高層管理人員的決策支持

    posted @ 2010-05-19 10:05 豬 閱讀(330) | 評(píng)論 (0)編輯 收藏
    因?yàn)榭蛻?hù)不滿(mǎn)意界面設(shè)計(jì),人家看中了兄弟單位用的系統(tǒng)的樣子,可他卻不知那時(shí)cs程序,要想用bs做成那樣的效果還是先天不足,就這樣開(kāi)始了GWT GXT的探索,一邊摸索一邊用GXT重寫(xiě)這個(gè)系統(tǒng)
    現(xiàn)在想想 經(jīng)歷了三個(gè)階段
    剛開(kāi)始是demo階段,因?yàn)椴恢缆纷卟蛔叩耐ǎ婷鱃XT能實(shí)現(xiàn)的效果,也沒(méi)注意模塊的規(guī)劃,甚至就一個(gè)類(lèi)
    而后發(fā)現(xiàn)還是能走通的,就開(kāi)始添磚加瓦,發(fā)現(xiàn)代碼越加越亂,決心重構(gòu),定義了多個(gè)包,多個(gè)類(lèi)負(fù)責(zé)不同的功能模塊,定義了一些Panel,一下子清晰多了,也遇到了不同模塊間互相調(diào)用的問(wèn)題,自己想當(dāng)然的辦法就是在一個(gè)類(lèi)中聲明每個(gè)模塊作為屬性,就像一個(gè)總管,每個(gè)屋子的鑰匙我都有了,也認(rèn)識(shí)到了這樣的缺點(diǎn),一些模塊中的事件不等不在這個(gè)主管中定義
    現(xiàn)在Now,用一天時(shí)間再次改寫(xiě),仿照Gxt中的例子Explorer
    1、將各個(gè)模塊定義成com.extjs.gxt.ui.client.mvc.View,View中必須實(shí)現(xiàn)方法handleEvent(AppEvent event),負(fù)責(zé)處理發(fā)給自己的事件
    2、為每個(gè)View定義com.extjs.gxt.ui.client.mvc.Controller,每個(gè)Controller中包含View,在這里定義View要處理的事件
    3、在Dispatcher中注冊(cè)每個(gè)Controller

    這樣,每個(gè)View各司其職,他們各自有各自的功能,會(huì)接收為他們定義的所有事件并處理,發(fā)送事件Dispatcher.forwardEvent(appEvent);

    感覺(jué)這次改寫(xiě)后 速度還沒(méi)有改寫(xiě)前的快,現(xiàn)在每次操作url會(huì)自動(dòng)添加Hash,想把它去掉,一直沒(méi)找到根結(jié)
    posted @ 2010-05-19 09:55 豬 閱讀(612) | 評(píng)論 (0)編輯 收藏
    Gwt中調(diào)用panel的setUrl方法嵌入一個(gè)網(wǎng)頁(yè)
    在網(wǎng)頁(yè)加載過(guò)程中加入wait
    在頁(yè)面中加入javascript
    var ready = false; 
    $j(document).ready(function(){
    ready = true; 
    });//這里用了jquery

    然后再java中聲明
    public native boolean ready(Element frame)/*-{
    return frame.contentWindow.ready?true:false;
    }-*/;

    然后在設(shè)置Frame的url時(shí)
    olapFrame = centerCp.setUrl(GWT.getHostPageBaseURL()
    + com.google.gwt.http.client.URL.encode("jsp/showOlap.jsp?dim="
    + dims + "&dimname=" + colLabels + ""));
    final MessageBox box = MessageBox.wait("等待", "正在查詢(xún)數(shù)據(jù),請(qǐng)稍后...", "查詢(xún)中...");
    final Element frame = olapFrame.getElement();
    final Timer t = new Timer() {
    @Override
    public void run() {
    if (ready(frame)) {
    this.cancel();
    box.close();
    }
    }
    };
    t.scheduleRepeating(100);
    posted @ 2010-05-19 09:54 豬 閱讀(481) | 評(píng)論 (0)編輯 收藏
    organize imports應(yīng)該是ctrl+shift+o的操作
    add import導(dǎo)入指定的類(lèi)
    organize imports導(dǎo)入所有需要導(dǎo)入的類(lèi),并且如果有些import是沒(méi)用的,那么eclipse會(huì)自動(dòng)刪除
    posted @ 2010-03-03 22:07 豬 閱讀(1289) | 評(píng)論 (0)編輯 收藏
    Gwt中調(diào)用panel的setUrl方法嵌入一個(gè)網(wǎng)頁(yè)
    在網(wǎng)頁(yè)加載過(guò)程中加入wait
    在頁(yè)面中加入javascript
    var ready = false;
    $j(document).ready(function(){
    ready = true;
    });//這里用了jquery

    然后再java中聲明
    public native boolean ready(Element frame)/*-{
    return frame.contentWindow.ready?true:false;
    }-*/;

    然后在設(shè)置Frame的url時(shí)
    olapFrame = centerCp.setUrl(GWT.getHostPageBaseURL()
    + com.google.gwt.http.client.URL.encode("jsp/showOlap.jsp?dim="
    + dims + "&dimname=" + colLabels + ""));
    final MessageBox box = MessageBox.wait("等待", "正在查詢(xún)數(shù)據(jù),請(qǐng)稍后...", "查詢(xún)中...");
    final Element frame = olapFrame.getElement();
    final Timer t = new Timer() {
    @Override
    public void run() {
    if (ready(frame)) {
    this.cancel();
    box.close();
    }
    }
    };
    t.scheduleRepeating(100);
    posted @ 2010-03-03 22:07 豬 閱讀(226) | 評(píng)論 (0)編輯 收藏
    javascript 調(diào)用java代碼
    //調(diào)用JAVA靜態(tài)方法
    //規(guī)則: @全路徑類(lèi)名::靜態(tài)方法名(方法簽名)(傳入?yún)?shù))
    //@com.capinfo.cdss.gwt.olap.client.ui.PartOlapCenterTab::saveOlapState

    (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava

    /lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)

    (saveName,dims,rowDims,colDims,sql,colLabels,expandInfo,hideInfo,exp,field,remark);
    //調(diào)用JAVA非靜態(tài)方法
    //規(guī)則:實(shí)例對(duì)象.@全路徑類(lèi)名::方法名(方法簽名)(傳入?yún)?shù))
    //this.@com.capinfo.cdss.gwt.olap.client.ui.PartOlapCenterTab::saveOlapState

    (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava

    /lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)

    (saveName,dims,rowDims,colDims,sql,colLabels,expandInfo,hideInfo,exp,field,remark);


    //調(diào)用JAVA的非靜態(tài)屬性
    //規(guī)則:實(shí)例對(duì)象.@全路徑類(lèi)名::屬性名
    //var field=this.@com.capinfo.cdss.gwt.olap.client.ui.PartOlapCenterTab::field;

    參考:http://java.sun.com/j2se/1.4.2/docs/guide/jni/spec/types.html#wp16432
    http://yonglin4605.javaeye.com/blog/568045
    http://yonglin4605.javaeye.com/blog/564829
    posted @ 2010-03-03 22:06 豬 閱讀(652) | 評(píng)論 (0)編輯 收藏
    在*.gwt.xml中加入 顯示中文
    <inherits name="com.google.gwt.i18n.I18N"/>
    <extend-property name="locale" values="zh" />
    在頁(yè)面中加入
    <meta name="gwt:property" content="locale=zh" >
    posted @ 2010-03-03 21:44 豬 閱讀(518) | 評(píng)論 (0)編輯 收藏
    調(diào)用panel的setUrl方法嵌入一個(gè)網(wǎng)頁(yè)
    要訪問(wèn)這個(gè)網(wǎng)頁(yè)中的js變量 var abc
    setUrl返回一個(gè)Frame

    public native void jsGetVar(Element element)/*-{
    var abc = element.contentWindow.abc;
    //element.contentWindow.document.getElementById("name");訪問(wèn)element
    }-*/;

    調(diào)用 jsGetVar(frame.getElement());

    參考:http://tailorcai.javaeye.com/blog/186897
    posted @ 2010-03-03 21:44 豬 閱讀(397) | 評(píng)論 (0)編輯 收藏
    在網(wǎng)上搜索了很多部署gwt到tomcat的blog,吸取了大家的經(jīng)驗(yàn),又發(fā)現(xiàn)一些問(wèn)題,總結(jié)一下
    我是用的Google Plugin for Eclipse ,跟用gwt的sdk編譯有點(diǎn)點(diǎn)不一樣
    1、在gwt項(xiàng)目右鍵Google > GWT Compile,就會(huì)在項(xiàng)目中的war中得到編譯后的文件
    To run the application as JavaScript in what GWT calls "production mode", compile the application by right-

    clicking the project and choosing Google > GWT Compile.
    參考:http://code.google.com/webtoolkit/usingeclipse.html#compiling
    2、將war中這些文件復(fù)制到tomcat webapp/應(yīng)用 目錄下
    看一下WEB-INF\classes是不是有相應(yīng)的class文件,要是沒(méi)有用eclipse編譯后復(fù)制過(guò)來(lái)
    3、這樣就需要gwt-user.jar了
    url中也不需要?gwt.codesvr=172.20.66.140:9997這樣的參數(shù)了
    4、打開(kāi)tomcat訪問(wèn)相應(yīng)html可能什么都出不來(lái),或者訪問(wèn)數(shù)據(jù)庫(kù)時(shí)出錯(cuò),查看gwt編譯時(shí)控制臺(tái)輸出,是不是跟web.xml中配的

    Servlet mapping是不是對(duì)應(yīng),
    比如
    Linking into D:\spring\workspace\fusionchart\war\olap.
    Link succeeded
    Compilation succeeded -- 92.640s
    我的web.xml原來(lái)是
    <servlet-mapping>
    <servlet-name>olap</servlet-name>
    <url-pattern>/com.capinfo.cdss.gwt.olap.Olap/olap</url-pattern>
    </servlet-mapping>
    要改成
    <servlet-mapping>
    <servlet-name>olap</servlet-name>
    <url-pattern>/olap/olap</url-pattern>
    </servlet-mapping>
    相應(yīng)html中原來(lái)是
    <script type="text/javascript" language="javascript" src="com.capinfo.cdss.gwt.olap.Olap/com.capinfo.cdss.gwt.olap.Olap.nocache.js"></script>
    改成
    <script type="text/javascript" language="javascript" src="olap/olap.nocache.js"></script>
    還沒(méi)鬧清楚為什么會(huì)這樣
    跟eclipse自動(dòng)編譯有關(guān)?高人告知啊
    posted @ 2010-03-03 21:43 豬 閱讀(676) | 評(píng)論 (1)編輯 收藏
    ext-gwt 設(shè)置日期格式

    DateField date = new DateField();
    date.setPropertyEditor(new DateTimePropertyEditor("yyyy-MM-dd"));
    posted @ 2010-03-03 21:43 豬 閱讀(572) | 評(píng)論 (0)編輯 收藏
    如果要去掉此提示,打開(kāi)SQL 2008 在最上面 工具-〉選項(xiàng)-〉左側(cè)有個(gè) 設(shè)計(jì)器-〉表設(shè)計(jì)器和數(shù)據(jù)庫(kù)設(shè)計(jì)器 -> 阻止保存要求重新創(chuàng)建表的更改(右側(cè)) 把鉤去即可

    參考:http://www.cnblogs.com/ajayumi/archive/2009/04/08/1431429.html
    posted @ 2010-03-03 21:42 豬 閱讀(740) | 評(píng)論 (0)編輯 收藏
    連接Sql Azure
    微軟早就公布Sql Azure可以使用了,今天切身體驗(yàn)了一下,方法看下面鏈接
    http://blogs.msdn.com/sqlcrd/archive/2009/12/28/sql-azure.aspx

    測(cè)試asp.net連接時(shí),啟動(dòng)項(xiàng)目報(bào)錯(cuò):
    Windows Azure Tools: Failed to initialize the Development Storage service. Unable to start Development Storage.

    Failed to start Development Storage: the SQL Server instance ‘localhost\SQLExpress’ could not be found.   Please configure the SQL Server instance for Development Storage using the ‘DSInit’ utility in the Windows Azure SDK.
    解決方法:
    go to the "Windows Azure SDK Command Prompt"
    執(zhí)行:
    DSInit /sqlInstance:. /forceCreate

    再次重新啟動(dòng),驚喜,報(bào)一堆這樣的錯(cuò)誤:

    命名空間“http://schemas.microsoft.com/developer/msbuild/2003”中的“PropertyGroup”。 的子元素
    命名空間“http://schemas.microsoft.com/developer/msbuild/2003”中的“ServiceHostingSDKInstallDir”。
    無(wú)效。應(yīng)為可能元素的列表: 命名空間“http://schemas.microsoft.com/developer/msbuild/2003”中的“Property”。。   

    C:\Program Files\MSBuild\Microsoft\Cloud Service\v1.0\Microsoft.CloudService.targets    9    6    雜項(xiàng)文件

    鬧了半天是因?yàn)閯偛?br /> 開(kāi)著"Windows Azure SDK Command Prompt"
    關(guān)了就OK了
    posted @ 2010-03-03 21:42 豬 閱讀(347) | 評(píng)論 (0)編輯 收藏
    今天上班發(fā)現(xiàn)訪問(wèn)公司局域網(wǎng)里的計(jì)算機(jī)共享不好使了,輸入正確的用戶(hù)名密碼,也提示不正確,差點(diǎn)就還原系統(tǒng)了,最后Google到了方法: WIN7電腦上開(kāi)始 search 輸入sec , 打開(kāi)local security policy, 找到security settings\local policies\Network Security: LAN Manager authentication level, the default vaule 是 not defined. 改為"Send NTLM response only"后即可. 參考:http://bbs.pcbeta.com/thread-511161-1-1.html
    posted @ 2010-03-03 21:41 豬 閱讀(1732) | 評(píng)論 (0)編輯 收藏
    http://www.infzm.com/content/39708 一直比較喜歡南方周末,不像一些報(bào)紙媒體報(bào)喜不報(bào)憂,想南方為追求事實(shí)真相的記者致敬!!! 另發(fā)句牢騷:對(duì)北京的除雪工作甚是不滿(mǎn),要政府干啥吃的
    posted @ 2010-01-08 11:32 豬 閱讀(237) | 評(píng)論 (0)編輯 收藏
    余年已七十有余,一朝怛化,揆諸生寄 死歸之理,一切無(wú)所 縈懷,惟我瞻四方,蹙國(guó)萬(wàn)里,民窮財(cái)盡,實(shí)所痛心,生平不喜多言,往日曲突徒薪之謀,國(guó)人或不盡省記,今則本識(shí)途之驗(yàn),為將死之鳴,愿我國(guó)人靜聽(tīng)而力行 焉!則余生雖死猶生,九原瞑目矣。國(guó)雖微弱,必有復(fù)興直道,亦至簡(jiǎn)單。 勿因我見(jiàn)而輕起政爭(zhēng),勿尚空談而不顧實(shí)踐,勿興不急之務(wù)而浪用民財(cái),勿信過(guò)激言行之說(shuō)而自搖邦本。講外交者,勿忘鞏固國(guó)防;司教育者,勿忘 保存國(guó)粹;治家者,勿棄國(guó)有之禮教;求學(xué)者,勿鶩時(shí)尚之紛華。 本此八勿,以應(yīng)萬(wàn)有,所謂自力更生者在此,轉(zhuǎn)弱為強(qiáng)者亦在此矣。余生平不事生產(chǎn),后人宜體我樂(lè)道安貧之意,喪葬力崇節(jié)簡(jiǎn),殮以居士服,毋以葷腥饋祭。
    好一個(gè) 勿興不急之務(wù)而浪用民財(cái)

    引自:時(shí)寒冰 -- 騰訊博客 http://shihanbing.qzone.qq.com
    posted @ 2010-01-08 11:31 豬 閱讀(241) | 評(píng)論 (0)編輯 收藏

    java.lang.InstantiationException

    在Struts creating form bean的時(shí)候遇到這個(gè)異常

    在form bean 中加一個(gè)無(wú)參的構(gòu)造函數(shù)就Ok了

    posted @ 2009-12-29 12:19 豬 閱讀(619) | 評(píng)論 (0)編輯 收藏

    驚聞諸如趕集網(wǎng)\263這類(lèi)網(wǎng)站上的租房信息都被中介代理買(mǎi)斷了,只有他們能看到,天理何在阿
    在這發(fā)一個(gè),氣死我了

    自己的房子出租

    房屋信息:出租西三旗橋東南角常秀家園南北通透三居住房一套,面積80平米,6層的6層。三室為正規(guī)三室無(wú)隔斷,主臥朝陽(yáng)20平左右,有陽(yáng)臺(tái),2次臥朝北面積10平左右。
    房屋裝修為中裝,新刷白墻,房間整潔干凈,設(shè)施齊全。天然氣入戶(hù),電熱水器,上網(wǎng)方便。
    房屋周邊信息:小區(qū)周邊交通設(shè)施方便,有二十幾趟公交車(chē),下樓小區(qū)門(mén)口就有運(yùn)通103、運(yùn)通109、運(yùn)通118三趟公交始發(fā)。
    離小區(qū)步行5分鐘的公交站有919、307、315、345、379、393、398、407、618、625、670、629、753、810、819、運(yùn)通117等N趟四通八達(dá)
    的公交車(chē),其中的919大站快車(chē),919區(qū)間等八達(dá)嶺高速的直達(dá)車(chē),在上班高峰時(shí)間直達(dá)三環(huán)馬甸只需不到半小時(shí)時(shí)間。919大站
    快車(chē)一站直達(dá)起家豁子(換乘10號(hào)線地鐵)3站德勝門(mén)站(換乘地鐵2號(hào)線)。小區(qū)離13號(hào)線城鐵龍澤站僅2站地公交。周邊商業(yè)圈發(fā)達(dá)并正在迅速崛起中,購(gòu)物及吃飯都很方便
    ,京客隆、超市發(fā)、肯德基、烤鴨店、老家肉餅、蘇寧電器、購(gòu)物中心、24小時(shí)藥店……環(huán)繞周邊應(yīng)有盡有。
    出租條件:房屋覓有正當(dāng)職業(yè),無(wú)不良嗜好的有為青年出租,希望生活習(xí)慣良好,收入穩(wěn)定,長(zhǎng)期出租,可整租也可單租,全天看房。中介勿擾,謝謝~
    聯(lián)系方式:13810428318 QQ 122088025

    做編程的勞苦兄弟優(yōu)惠


    這有圖
    http://beijing.koubei.com/fang/detail-rent-r38c4e1aede9546588a7150079255ec2d.html
    posted @ 2009-12-02 14:15 豬 閱讀(204) | 評(píng)論 (0)編輯 收藏

    request.getInputStream() 和 request.getReader()不能同時(shí)調(diào)用,否則會(huì)引發(fā)java.lang.IllegalStateException異常。

    API中有寫(xiě):

    getInputStream

    public ServletInputStream getInputStream()
    throws java.io.IOException
    Retrieves the body of the request as binary data using a ServletInputStream. Either this method or getReader() may be called to read the body, not both.
    Returns:
    a ServletInputStream object containing the body of the request
    Throws:
    java.lang.IllegalStateException - if the getReader() method has already been called for this request
    java.io.IOException - if an input or output exception occurred
    posted @ 2009-10-19 13:48 豬 閱讀(3066) | 評(píng)論 (0)編輯 收藏

    公告

    希望有一天

    我能用鼠標(biāo)雙擊我的錢(qián)包

    然后選中一張100元

    按住“ctrl+c”

    接著不停的“ctrl+v”

    嘻嘻~~~笑醒~~~



    導(dǎo)航

    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類(lèi)(102)

    隨筆檔案(398)

    文章分類(lèi)

    文章檔案(10)

    有趣網(wǎng)絡(luò)

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲精品av无码喷奶水糖心| 免费视频中文字幕| 亚洲AV无码成人精品区蜜桃| 中文字幕av免费专区| 亚洲日韩欧洲乱码AV夜夜摸| 2022免费国产精品福利在线| 亚洲国产一成久久精品国产成人综合| 国产成人久久精品亚洲小说| 国产一级一片免费播放i| 国内成人精品亚洲日本语音| 四虎永久免费地址在线网站| 国产精品亚洲二区在线| 免费a级黄色毛片| 青青草国产免费国产是公开| 亚洲日韩VA无码中文字幕| AAAAA级少妇高潮大片免费看| 狠狠综合久久综合88亚洲| 99re8这里有精品热视频免费| 亚洲国产精品成人精品无码区在线| 99在线免费观看| 亚洲国产一区二区a毛片| **aaaaa毛片免费同男同女| 亚洲中文无码线在线观看| 日韩免费a级毛片无码a∨| 亚洲成AV人片高潮喷水| 凹凸精品视频分类国产品免费 | 日本特黄特色AAA大片免费| 亚洲成人国产精品| 成人无码视频97免费| 久久久久亚洲精品成人网小说| 1a级毛片免费观看| 亚洲国产视频久久| 四虎国产精品免费视| 成在线人免费无码高潮喷水| 久久精品国产亚洲AV电影| 一个人免费观看视频www| 国产成人 亚洲欧洲| 亚洲午夜日韩高清一区| 久久久久久免费一区二区三区 | 亚洲中文字幕久久精品无码APP| 日韩免费的视频在线观看香蕉|