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

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

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

    Atea - Hero's Grave

    面向?qū)ο螅_源,框架,敏捷,云計(jì)算,NoSQL,商業(yè)智能,編程思想。

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      40 隨筆 :: 0 文章 :: 28 評(píng)論 :: 0 Trackbacks
    當(dāng)前使用的GAE版本為1.2.1 for java

    1. 使用Eclipse時(shí)出現(xiàn)編譯警告(XXX has annotations but there is no registered AnnotationReader. Please check your CLASSPATH and the annotations in the class for validity. )
    解決辦法:修改ORM Enhancement(http://code.google.com/eclipse/docs/appengine_orm.html)
    參考鏈接: http://groups.google.com/group/google-appengine-java/browse_thread/thread/90850aad49730245

    2. 發(fā)送郵件時(shí)發(fā)生com.google.apphosting.api.ApiProxy$CallNotFoundException
    解決辦法:?jiǎn)渭兊倪\(yùn)行郵件發(fā)送程序是不行的,需要發(fā)布后再執(zhí)行。如果需要單元測(cè)試,需要配置setUp與tearDown
     1     @BeforeTest
     2     public void setUp() throws Exception {
     3         ApiProxy.setEnvironmentForCurrentThread(new TestEnvironment());
     4         ApiProxy.setDelegate(new ApiProxyLocalImpl(new File(".")) {});
     5     }
     6     @AfterTest
     7     public void tearDown() throws Exception {
     8         // not strictly necessary to null these out but there's no harm either
     9         ApiProxy.setDelegate(null);
    10         ApiProxy.setEnvironmentForCurrentThread(null);
    11     }
    參考鏈接:http://groups.google.com/group/google-appengine-java/browse_thread/thread/debc5bcb69a6871f

    3. 前臺(tái)處理要顯示數(shù)據(jù)時(shí)發(fā)生org.datanucleus.exceptions.NucleusUserException
    解決辦法:在PersistenceManager.close()前,使用PersistenceManager.detachCopy(DATA)返回?cái)?shù)據(jù)

    4. 使用SpringMVC發(fā)生java.lang.NoClassDefFoundError: javax/naming/NamingException
    解決辦法:不要使用
    spring all-in-one.jar,使用需要的各個(gè)模塊jar
    參考鏈接:http://groups.google.com/group/google-appengine-java/browse_thread/thread/f1a541fe52e172dd

    5. one-to-many情況下使用Collection.add()發(fā)生java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
    解決辦法:one的主鍵不要使用Long,使用String或Key等。
    參考鏈接:http://groups.google.com/group/google-appengine-java/browse_thread/thread/10e6cede7fb678f3/62d9505da8ec43bd

    6. 不能插入one-to-many中的many方數(shù)據(jù)
    解決辦法:JDO這點(diǎn)做的讓人比較不適應(yīng),需要手動(dòng)維護(hù)one方的關(guān)系才行,具體步驟為:
    a)檢索出one
    b)維護(hù)many對(duì)象的one關(guān)系
    c)維護(hù)one對(duì)象的many配列關(guān)系(重要)
    d)保存
    e)保證以上操作在一個(gè)事務(wù)中進(jìn)行
    示例代碼:
    1         Child c = new Child();
    2         PersistenceManager manager = JdoUtil.getPMF().getPersistenceManager();
    3         Parent p = manager.getObjectById(Parent.class, Parent.getId());
    4         c.setParent(p);
    5         p.getChildren().add(c); // important
    6         manager.makePersistent(c);
    7         manager.close();

    GAE for java 還處在發(fā)展階段,像JDO/JPA、File upload、image api等的處理還有不少需要完善的地方。
    由上面的第6點(diǎn)可以看出,事務(wù)處理是一個(gè)比較棘手的課題。我的下個(gè)目標(biāo)就是要好好設(shè)計(jì)它,也許OSIV是個(gè)不錯(cuò)的選擇:-)
    posted on 2009-06-04 12:20 Atea 閱讀(629) 評(píng)論(0)  編輯  收藏 所屬分類: GAE
    主站蜘蛛池模板: 亚洲国产一区二区视频网站| 免费影院未满十八勿进网站| 免费人成视网站在线观看不卡| 亚洲色精品VR一区区三区| 97免费人妻无码视频| 亚洲国产精品综合久久久 | 国产V片在线播放免费无码 | 免费在线观看的网站| 亚洲一级毛片免费在线观看| 青青青国产在线观看免费网站| 亚洲国产成a人v在线| 希望影院高清免费观看视频| 亚洲性线免费观看视频成熟| 处破痛哭A√18成年片免费| 亚洲AV无码一区二区三区性色| 国产色婷婷精品免费视频| 美女的胸又黄又www网站免费| 四虎AV永久在线精品免费观看| 成年免费大片黄在线观看com| 中文字幕亚洲不卡在线亚瑟| 两个人看的www高清免费观看| 少妇中文字幕乱码亚洲影视| 免费观看的毛片大全| 亚洲AV无码之国产精品| 国产L精品国产亚洲区久久| a在线免费观看视频| 老司机亚洲精品影院| 女人张腿给男人桶视频免费版| 美女露100%胸无遮挡免费观看| 国产亚洲自拍一区| 222www免费视频| 欧美激情综合亚洲一二区| 亚洲精品综合久久| 麻花传媒剧在线mv免费观看| 亚洲AV无码专区在线观看成人| 国产亚洲自拍一区| 我想看一级毛片免费的| 大妹子影视剧在线观看全集免费 | 3344免费播放观看视频| 日韩亚洲综合精品国产| 亚洲色偷拍另类无码专区|