spark的自留地(ofbiz/eclipse rcp/shark/opentaps)

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            54 Posts :: 0 Stories :: 112 Comments :: 0 Trackbacks

          #

          o 使用安全連接
          在你的<request-map ..>編輯中使用<security > 標(biāo)簽,其中https="true"將使頁(yè)面使用https協(xié)議,auth="true|false"決定用戶是否必須先登入系統(tǒng),direct-request="false"將不允許用戶直接通過(guò)瀏覽器輸入地址方式訪問(wèn)(即只能通過(guò)request-chain請(qǐng)求鏈方式訪問(wèn))

          o 異步方式運(yùn)行服務(wù)
          <event type="sevice" path="async" >

          o 確認(rèn)用戶不會(huì)多次提交表單
          使用
          <response type="request-redirect" >
          替代type="view",在使用request-redirect做為回應(yīng)方式時(shí),將會(huì)將參數(shù)作為URL一部分,所以在有特殊字符時(shí)有可能導(dǎo)致錯(cuò)誤。所以不要這樣使用:
          <response name="viewContact" type="request-redirect" value="viewContact"/>
          可以使用以下方式來(lái)替代:
          <response name="viewContact" type="request" value="viewContact"/>

          o 錯(cuò)誤信息的獲得
          錯(cuò)誤與事件信息被設(shè)置于請(qǐng)求屬性中的 _ERROR_MESSAGE_(String),_EVENT_MESSAGE_(String)。它們可以request.setAttribute()方式設(shè)置及通過(guò)request.getAttribute()方式讀取。
          參考 framework/common/webcommon/includes/messages.ftl

          o 在請(qǐng)求后進(jìn)行重定向
          使用"/control/req1/req2"方式則控制器將在執(zhí)行請(qǐng)求"req1"后進(jìn)行"req2"

          o 如何在查詢按鈕中加入預(yù)填參數(shù)
          查詢按鈕可以通過(guò)Javascript方式創(chuàng)建查詢操作,你可以使于預(yù)填字段方式在尾部增加參數(shù),示例:
          "javascript:call_fieldlookup2(document.addProductStoreRole.partyId,'LookupPartyName?productStoreId=${productStoreId}');"

          o 關(guān)于XSL:FO的提示
          在描述或文本后追加?xml或使用<#escape x as x?xml>,以避免收到錯(cuò)誤提示。

          o 在應(yīng)用間切換時(shí)保持用戶登入狀態(tài)
          在一個(gè)應(yīng)用跳轉(zhuǎn)至另一個(gè)應(yīng)用時(shí)在URL中放入externalLoginKey參數(shù),這樣系統(tǒng)就不會(huì)再次要求你進(jìn)行登入操作:
          &externalLoginKey=${externalLoginKey}

          本文檔譯自ofbiz 4.0 cookbooks,本人翻譯,歡迎轉(zhuǎn)載,請(qǐng)注明出處.
          posted @ 2008-10-11 22:04 shanghai_spark 閱讀(1412) | 評(píng)論 (0)編輯 收藏

          Eclipse RCP用來(lái)開(kāi)發(fā)Java客戶端應(yīng)用非常爽,現(xiàn)在它本身也有BIRT報(bào)表項(xiàng)目支持Eclipse RCP中使用報(bào)表。不過(guò)四年前我開(kāi)始開(kāi)發(fā)時(shí),卻沒(méi)這么幸運(yùn),于是怎么在RCP中生成報(bào)表成我一個(gè)頭痛的事情。

          琢磨了幾天,終于讓我想出一個(gè)在我的Eclipse RCP程序中使用JasperReport報(bào)表的方法:

          1、報(bào)表模版存放在服務(wù)端特定的一個(gè)資源目錄下。
          2、客戶端獲得客戶輸入的報(bào)表參數(shù)(查詢范圍、分組條件)及對(duì)應(yīng)報(bào)表模版名稱(與服務(wù)端有命名約定)
          3、客戶端提交request對(duì)象至服務(wù)端后,服務(wù)端將報(bào)表參數(shù)、數(shù)據(jù)庫(kù)連接(我會(huì)將jdbc參數(shù)從服務(wù)端傳入)調(diào)用jasperreport報(bào)表引擎生成jprint文件。服務(wù)端返回jprint文件內(nèi)容至客戶端同步方法。
          4、客戶端將返回的jprint內(nèi)容存儲(chǔ)至臨時(shí)文件中,通過(guò)SWT_AWT橋接器調(diào)用JRViewer顯示jprint文件(即顯示報(bào)表)

          思路想通,我只用了三個(gè)小時(shí)就完成了客戶端與服務(wù)端通用報(bào)表程序的開(kāi)發(fā),唉,所以說(shuō)做事情想清楚最重要,想不清楚時(shí)動(dòng)手還不如多睡會(huì)呢!

          看看我們系統(tǒng)中的表現(xiàn)吧?

          Eclipse RCP中調(diào)用JasperReport
          BTW:最后一張圖中的漏斗圖不是JasperReport生成的(它沒(méi)做漏斗圖),是我自己做的一個(gè)小控件(不過(guò)蠻難看的,幸好大家都安慰我說(shuō)比沒(méi)有強(qiáng),真是讓人欣慰呀!!!)

          本人原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處!
          posted @ 2008-10-10 18:05 shanghai_spark 閱讀(1801) | 評(píng)論 (0)編輯 收藏

          菜單組件通常用于生成屏幕主菜單欄,類似于Main | Data Source | Campaign | Tracking | Segment | Contact List |   Reports | Logout

          o 定義菜單

          <menu-item name="DataSource" title="${uiLabelMap.DataSource}"><link target="FindDataSource"/></menu-item>

           name屬性用于標(biāo)識(shí)菜單項(xiàng)。
           title屬性用于菜單顯示名稱,也可是uiLabelMap
           link指定菜單項(xiàng)的跳轉(zhuǎn)URI

          o 使得指定的菜單高亮
           在屏幕組件的<screen>-<actions>段中加入

          <set field="headerItem" value="reports"/>

           value值為已定義過(guò)的要加亮的菜單項(xiàng)
           
          o 根據(jù)條件選擇是否顯示菜單項(xiàng)
            在<menu-item>節(jié)點(diǎn)中使用 <condition>項(xiàng):

               <condition><not><if-empty field-name="userLogin"/></not></condition>
               
          <condition><if-empty field-name="userLogin"/></condition>


          o 使用CSS樣式表
            在<menu-item>節(jié)點(diǎn)中使用以下屬性
              align-style="" 定義對(duì)齊方式
              widget-style="" 定義菜單項(xiàng)在未選中時(shí)的樣式
              selected-style="" 定義菜單項(xiàng)在選中時(shí)的樣式

          o 右對(duì)齊菜單項(xiàng)
            使用align-style="col-right" 來(lái)啟用 "col-right" CSS樣式
            注意這個(gè)樣式將把第一個(gè)菜單項(xiàng)放到最右邊,第二個(gè)放在第一個(gè)的左邊,依次類推

          本文檔譯自ofbiz 4.0 cookbooks,本人翻譯,歡迎轉(zhuǎn)載,請(qǐng)注明出處.

          posted @ 2008-10-09 11:16 shanghai_spark 閱讀(1952) | 評(píng)論 (0)編輯 收藏

          1、如何調(diào)試OFBiz
          首先你需要學(xué)習(xí)和熟悉OFBiz的教程與工具指導(dǎo)文檔。指導(dǎo)文檔特別重要,因?yàn)楹芏嘧又黝}內(nèi)容不是排列最前的內(nèi)容卻可能導(dǎo)致問(wèn)題的發(fā)生。你應(yīng)該熟悉類似于Freemaker,beanshell,XML這些技術(shù)。你也應(yīng)該有過(guò)處理那些與OFBiz無(wú)關(guān)問(wèn)題的經(jīng)驗(yàn),比如處理數(shù)據(jù)庫(kù)或服務(wù)器引起的問(wèn)題。
          現(xiàn)在,你應(yīng)該仔細(xì)查看日志文件了解你錯(cuò)誤發(fā)生的原因。OFBiz在日志文件中提供大量的信息,這些信息將有助于你了解你遇到的問(wèn)題。它比處理的藝術(shù)更重要。哪些東西看上去工作有些特別,比如比如有些關(guān)聯(lián)程序?qū)?dǎo)致或影響到的結(jié)果,你都可以在日志文件中找到。如果你確實(shí)無(wú)法在日志文件中發(fā)現(xiàn)任何有用的東西,這時(shí)增加你自己的日志信息直到你有足夠的信息來(lái)發(fā)現(xiàn)實(shí)際的問(wèn)題所在。
          本指引將向你介紹OFBiz的日志文件工作情況,如何增加你自己的日志記錄,以及一些常見(jiàn)信息的含義。這些知識(shí)的理解建立在你理解JAVA及其它相關(guān)的技術(shù)基礎(chǔ)上,所有問(wèn)題的焦點(diǎn)只在于OFBiz的概念與信息內(nèi)容中。

          2. OFBiz日志文件
          OFBiz創(chuàng)建較多日志文件并將它們存儲(chǔ)于logs/目錄(在opentaps-0.9或更早版本中)或framework/logs/(在opentaps-0.9之后版本),文件有:
           - ofbiz.log.? - 記錄所有OFBiz生成日志信息。此文件將在滿時(shí)自動(dòng)循環(huán)創(chuàng)建新文件,即ofbiz.log是當(dāng)前日志文件,ofbiz.log.1是較早些時(shí)間的日志文件,ofbiz.log.2是比ofbiz.log.1更早時(shí)間的日志文件,以此類推。
           - console.log - 記錄所有OFBiz在控制臺(tái)界面運(yùn)行顯示的內(nèi)容。也有可能無(wú)效。
           - access_log.? - 類似于Apache httpd日志格式記錄所有服務(wù)請(qǐng)求。很漂亮但對(duì)調(diào)試沒(méi)有什么用處。

          大多數(shù)據(jù)時(shí)間,你可以通過(guò)ofbiz.log或console.log來(lái)查詢調(diào)試信息。因?yàn)樗鼈冇泻芏鄡?nèi)容,所以你最好使用一個(gè)可以翻頁(yè)與進(jìn)行查找的編輯器來(lái)打開(kāi)這些日志文件。


          3、查找日志信息
          Java日志信息最容易查找。它們的日志信息中通常有類名與行號(hào)生成:

          111770[PaymentGatewayServices.java:776:INFO ] (Capture) Invoice [#10110] total: 38.54

          Minilang方法日志中的類名均為L(zhǎng)og.java,如:

          112499[                Log.java:103:INFO ] Finished quickShipEntireOrder:\nshipmentShipGroupFacilityList=[[shipmentId=10120, facilityId=WebStoreWarehouse, shipGroupSeqId=00001]]\nsuccessMessageList=[Created shipment with ID [10120] for ship group ID [00001] for facility ID [WebStoreWarehouse]]

          如果你在beanshell中直接使用輸出,你輸出的內(nèi)容將顯著的顯示于日志文件中:

          2006-07-19 13:46:26,373 [  ServiceDispatcher.java:450:DEBUG] [[Sync service finished- total:0.027,since last(Begin):0.027]] - 'ecommerce / getProductCategoryAndLimitedMembers'
          parentCategory = TABLE-LINENS-SOLIDS 
          2006-07-19 13:46:26,874 [      PriceServices.java:802:INFO ] PromoPrice and ProductPriceAction had null amount and no default price was available, using list price: 2.0 for product with id 15899

          如果你在beanshell中使用調(diào)試方法,你將在日志中得到如下信息:

          2006-07-19 13:46:26,373 [  ?:?] parentCategory = TABLE-LINENS-SOLIDS

          你可以為那些無(wú)法發(fā)現(xiàn)日志信息的minilang或beanshell代碼中加入自己的信息輸出。

          所有freemarker,screen-widget或form widget輸出的信息將直接顯示在你的瀏覽器屏幕上。除非這些控件崩潰否則不會(huì)顯示任何日志信息。

          4. 增加你自己的日志信息
          在Java中增加你自己的日志信息,請(qǐng)使用OFBiz Debug類(org.ofbiz.base.util.Debug)中的調(diào)試方法,如logInfo,logWarning, logError...
           示例:   Debug.logInfo("Now processing invoice " + invoiceId, module);

          在beanshell中增加日志信息,同樣使用Debug方法,但在內(nèi)容中忽略如""這樣內(nèi)容。

          在freemarker中增加日志信息,只需要顯示你打算跟蹤的變量,如:

             ${invoice}  <#-- 將顯示 invoice 的一般屬性值-->
             ${invoice.invoiceId}  
          <#-- 將顯示invoice.invoiceId屬性值 -->

           

          在minilang中增加日志信息,使用<log >指令并輸入你的值,比如在freemarker中:

             ${invoice}  <#-- will display the entire GenericValue invoice -->
             ${invoice.invoiceId}  
          <#-- will display the invoiceId field of invoice -->


          通常level節(jié)點(diǎn)屬性用于設(shè)置日志級(jí)別,如:"info", "warning", "error",對(duì)應(yīng)于Debug中的同名方法。


          5. 何時(shí)需要重啟OFBiz

          你在做如下更改時(shí)需要重新啟動(dòng)OFBiz服務(wù)器:
          - Java文件(記得要重新編譯)
          - 配置/.properties文件
          - entitymodel或entitygroup XML定義文件
          - 服務(wù)或secas XML文件
          - JPublish XML文件

          你在進(jìn)行以下修改時(shí)無(wú)需重新啟動(dòng)OFBiz服務(wù)器:
          - freemarker FTL模版
          - beanshell BSH模版
          - Screens XML文件
          - Forms XML文件
          - 控制器XML文件(注意:在opentaps-0.8和OFBiz 3.x及更早版本中,你在更改控制器時(shí)需要重啟)
          但有可能你需要在瀏覽器中清除緩存。
           

          6. 常見(jiàn)錯(cuò)誤及其含義:

          Cannot locate service by name (captureBillingAccountPayment)

             * 此服務(wù) (captureBillingAccountPayment) 在所有 services.xml 定義中都找不到.
          Cannot find service location (org.ofbiz.order.order.OrderServices)
             * 說(shuō)明在services XML定義點(diǎn)上指向的資源不存在.  如果這是一個(gè)minilang或beanshell服務(wù),即服務(wù)引擎無(wú)法找到此文件。如果這是一個(gè)Java服務(wù),則說(shuō)明在classpath中無(wú)法查找到這個(gè)類。

          Service method does not exist (com.opensourcestrategies.financials.invoice.InvoiceServices.setInvoiceDueDate(org.ofbiz.service.DispatchContext, java.util.Map))

             * 含義是在某個(gè)services.xml指定的這個(gè)服務(wù)不存在對(duì)應(yīng)的Java方法。通常發(fā)生于你在修改了Java文件后忘記再次編譯它來(lái)使新增的方法生效。

          java.lang.IllegalArgumentException: Could not get next sequenced ID for sequence name: Party (Could not get next sequenced ID for sequence name: Party).   

             * 系統(tǒng)無(wú)法取得實(shí)體的下一個(gè)自動(dòng)ID,通常發(fā)生于數(shù)據(jù)庫(kù)斷開(kāi)情況。

          ERROR: insert or update on table "inventory_item" violates foreign key constraint "inv_item_facility"


             * 在"inventory_item"表的插入/修改操作時(shí)違犯"inv_item_facility"外鍵約束。

          Error calling event: org.ofbiz.webapp.event.EventHandlerException: Service invocation error (Commit transaction failed)

             * 這是一個(gè)非常令人討厭的錯(cuò)誤信息。通常它意味著你訪問(wèn)的服務(wù)所觸發(fā)的ECA鏈服務(wù)中有一個(gè)服務(wù)失敗,于是導(dǎo)致全部的操作失敗。服務(wù)引擎無(wú)法為你進(jìn)一步跟蹤,所以你需要進(jìn)入log文件中進(jìn)一步查找錯(cuò)誤原因。訪問(wèn)你的logs/ofbiz.log 或logs/console.log文件去了解觸發(fā)錯(cuò)誤的根本原因。

          Unable to bind UserTransaction/TransactionManager to JNDI

             * 這是在opentaps 0.8/0.9及OFBiz的pre-Geronimo版本在Linux系統(tǒng)下可能會(huì)發(fā)生的一個(gè)問(wèn)題.  解決方法可以在以下網(wǎng)址中找到:  
               http://lists.ofbiz.org/pipermail/users/2004-June/004094.html

          Message: The entity name must immediately follow the '&' in the entity reference.
          org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.

             * 這是一個(gè) XSL:FO 錯(cuò)誤并意味著你在文本中使了字符'&',比如說(shuō)你在描述或地址中使了這個(gè)字符。 XSL:FO 使用xml屬性格式,所以你需要確認(rèn)你在文本字段后放置?xml。

          本文檔譯自ofbiz 4.0 cookbooks,本人翻譯,歡迎轉(zhuǎn)載,請(qǐng)注明出處.
          posted @ 2008-10-08 22:44 shanghai_spark 閱讀(2219) | 評(píng)論 (0)編輯 收藏

           

          準(zhǔn)備工作:

          1、 安裝JDK 1.5或以上版本,設(shè)置好JAVA_HOME

          2、 安裝MySQL 5.0或以上版本

          3、 http://www.eclipse.org/downloads/下載最新Eclipse版本,我下的是3.4.1版的Eclipse IDE for Java EE Developers,并解壓至工作目錄(我解壓至"C:\\",即工作目錄為"C:\\eclipse"

          4、 啟動(dòng)Eclipse,通過(guò)點(diǎn)擊Help菜單中的Software Updates...啟動(dòng)Software Updates向?qū)Ы缑妫陆?/span>subclipse遠(yuǎn)程站點(diǎn),遠(yuǎn)程下載地址為http://subclipse.tigris.org/update_1.0.x,勾選下載安裝Subclipse Plugin后點(diǎn)擊Intasll按鈕安裝

              Subclipse Plugin安裝

          檢出代碼:

          1、 在新建向?qū)?duì)話框中選擇從SVN中檢出項(xiàng)目
          SVN檢出項(xiàng)目

          2、 SVN檢出位置URL框中輸入:http://svn.apache.org/repos/asf/ofbiz后點(diǎn)擊Next
          檢查ofbiz代碼

          3、 選擇文件夾"branches"release4.0后點(diǎn)擊Finish

              選擇SVN檢出文件夾


          數(shù)據(jù)庫(kù)配置 [可以參考我寫的
          opentaps 1.0.2安裝(mysql)一文]:

          1、 通過(guò)mysql命令行來(lái)創(chuàng)建obfiz運(yùn)行所需數(shù)據(jù)庫(kù),為了方便識(shí)別,我們這里就用ofbiz來(lái)做數(shù)據(jù)庫(kù)吧。

          mysql> create database ofbiz;

                 mysql> exit

          2、 編輯ofbiz目錄中的framework/entity/config/entityengine.xml文件,使其能正確連接到你的mysql數(shù)據(jù)庫(kù)中(注意其中的ofbiz-userofbiz-password,把它們改成你實(shí)際的數(shù)據(jù)庫(kù)連接用戶名與密碼)。

          將其中的<delegator name="default"...> 段中的"datasource-name"從原來(lái)的"local" 改為 "localmysql"

          編輯<datasource name="localmysql"...> 段內(nèi)容,修改"jdbc-uri""jdbc:mysql://127.0.0.1/ofbiz?autoReconnect=true";修改"jdbc-username"/ "jdbc-password"為你的mysql連接用戶名/密碼,修改character-set="gbk"collate="gbk_bin",示例如下:

           

           1 <delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
           2
           3        <group-map group-name="org.ofbiz" datasource-name="localmysql"/>
           4
           5    </delegator>
           6
           7    <delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false">
           8
           9        <group-map group-name="org.ofbiz" datasource-name="localmysql"/>
          10
          11    </delegator>
          12
          13    <delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
          14
          15        <group-map group-name="org.ofbiz" datasource-name="localmysql"/>
          16
          17    </delegator>
          18
          19    <delegator name="other" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
          20
          21        <group-map group-name="org.ofbiz" datasource-name="localmysql"/>        
          22
          23   </delegator>
          24
          25
          26
          27


           

           1<datasource name="localmysql"
           2
           3            helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
           4
           5            field-type-name="mysql"
           6
           7            check-on-start="true"
           8
           9            add-missing-on-start="true"
          10
          11            check-pks-on-start="false"
          12
          13            use-foreign-keys="true"
          14
          15            join-style="ansi-no-parenthesis"
          16
          17            alias-view-columns="false"
          18
          19            drop-fk-use-foreign-key-keyword="true"
          20
          21            table-type="InnoDB"
          22
          23            character-set="gbk"
          24
          25            collate="gbk_bin">
          26
          27        <read-data reader-name="seed"/>
          28
          29        <read-data reader-name="demo"/>
          30
          31        <read-data reader-name="ext"/>
          32
          33        <inline-jdbc
          34
          35                jdbc-driver="com.mysql.jdbc.Driver"
          36
          37                jdbc-uri="jdbc:mysql://127.0.0.1/ofbiz?autoReconnect=true"
          38
          39                jdbc-username="ofbiz-user"
          40
          41                jdbc-password="ofbiz-password"
          42
          43                isolation-level="ReadCommitted"
          44
          45                pool-minsize="2"
          46
          47                pool-maxsize="20"/>
          48
          49



             3、 系統(tǒng)初始化

          在命令行窗口下,進(jìn)入ofbiz根目錄后運(yùn)行

          ant run-install

          系統(tǒng)開(kāi)始安裝,等大約15-30分鐘后,系統(tǒng)提示安裝完成。


          啟動(dòng)
          ofbiz:

          有兩種方式可以啟動(dòng)ofbiz

          1、 雙擊根目錄下的startofbiz.bat啟動(dòng)

          2、 eclipse中用鼠標(biāo)右鍵點(diǎn)擊build.xml,在右鍵菜單中選擇Run As->Ant Build…在彈出的構(gòu)建對(duì)話框中targets選項(xiàng)卡中勾選run后點(diǎn)擊run

              OFBiz ANT運(yùn)行配置界面

          訪問(wèn)
          ofbiz:

          打開(kāi)瀏覽器訪問(wèn):https://localhost:8443/webtools/control/main點(diǎn)擊屏幕右方的Login鏈接后進(jìn)行登錄,登錄后就可以訪問(wèn)你希望的功能特性,系統(tǒng)默認(rèn)帳號(hào)為admin/ofbiz,擁有所有權(quán)限。
              OFBiz主界面

          本人原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處!

          posted @ 2008-10-07 12:55 shanghai_spark 閱讀(2790) | 評(píng)論 (2)編輯 收藏

           

          Linux 里面有一個(gè) e2fsck 的指令,可以檢查及修復(fù)檔案系統(tǒng)。它的參數(shù)包括有:

          -a: 檢查 partition,如發(fā)現(xiàn)問(wèn)題會(huì)自動(dòng)修復(fù)。
          -b:
          設(shè)定 superblock 位置。
          -B size:
          指定 size 作為區(qū)塊大小。
          -c:
          檢查 partition 是否有壞軌。
          -C file:
          將檢查結(jié)果儲(chǔ)存到 file
          -d:
          輸出 e2fsck debug 結(jié)果。
          -f: e2fsck
          預(yù)設(shè)只會(huì)對(duì)錯(cuò)誤的檔案系統(tǒng)檢查,加上 -f 是強(qiáng)制檢查。
          -F:
          在檢查前將硬盤的 buffer cache 清空,避免發(fā)生錯(cuò)誤。
          -l list:
          記錄了壞軌區(qū)塊加入 list 中。
          -d :
          打印 e2fsck debug 結(jié)果。
          -f :
          強(qiáng)制檢查。
          -n:
          (read-only) 開(kāi)啟檔案系統(tǒng)
          -p:
          關(guān)閉互動(dòng)模式,如有問(wèn)題自動(dòng)修復(fù),等同 -a
          -v:
          顯示詳細(xì)報(bào)告。
          -y:
          啟用使用者互動(dòng)模式。

          使用例子
          檢查 /dev/sda1 是否有問(wèn)題,如發(fā)現(xiàn)問(wèn)題便自動(dòng)修復(fù):

          e2fsck -a -y /dev/sda1

          執(zhí)行 e2fsck fsck 前請(qǐng)先 umount partition,否則有機(jī)會(huì)令檔案系統(tǒng)毀損。如果需要對(duì)根目錄 (/) 進(jìn)行檢查及修復(fù),便需要進(jìn)入 singal user mode 執(zhí)行。

          posted @ 2008-10-06 19:33 shanghai_spark 閱讀(4462) | 評(píng)論 (0)編輯 收藏

          因?yàn)槲业某绦蚴褂昧薕R框架如hibernate之類的東東,所以我們的系統(tǒng)是支持各種關(guān)系型數(shù)據(jù)庫(kù)的!很多哥們?cè)诮榻B自己的產(chǎn)品或是項(xiàng)目時(shí)都是這樣說(shuō)的,真的是這樣嗎?

          也許最好你自己嘗試一下不同數(shù)據(jù)庫(kù)下的測(cè)試才能夸出這樣的海口!

          首先,你是否一直通過(guò)OR框架而沒(méi)有試圖繞開(kāi)有時(shí)顯得不那么可愛(ài)的hibernate呢?在你程序中的native sql是不是一直在遵循SQL 99的標(biāo)準(zhǔn)?你的主鍵生成方法是使用native方式還是在用自增ID呢?

          其次,你能保證你未使用目標(biāo)數(shù)據(jù)庫(kù)特有的功能特性嗎?如視圖在mysql 4及之前版本是不被支持的,oracle是不支持超過(guò)30個(gè)字符的數(shù)據(jù)庫(kù)對(duì)象名稱的...

          再次,那些為了速度或是特定要求情況下而集成進(jìn)來(lái)的組件,它們是不是直接使用了數(shù)據(jù)庫(kù)特性?JasperReport?shark?

          在經(jīng)歷過(guò)幾次數(shù)據(jù)庫(kù)切換后,我認(rèn)識(shí)到幻想在第一個(gè)發(fā)布版本不經(jīng)任何修改就支持所有數(shù)據(jù)庫(kù)是不現(xiàn)實(shí)的,也許應(yīng)該列出目標(biāo)環(huán)境下可能會(huì)使用到的數(shù)據(jù)庫(kù)集合,如:mysql/sqlserver/oracle。列出它們所共有的function,是否支持視圖,是否支持自增字段,數(shù)據(jù)庫(kù)對(duì)象名稱是否有長(zhǎng)度限制?大小寫是否敏感?是否支持存儲(chǔ)過(guò)程?...

          百練成鋼,一招鮮吃遍天下是不可能的!兄弟,你不這樣認(rèn)為嗎?

          本人原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處!

          posted @ 2008-10-05 21:22 shanghai_spark 閱讀(2140) | 評(píng)論 (7)編輯 收藏

          使用eclipse rcp開(kāi)發(fā)自己的應(yīng)用程序時(shí),經(jīng)常需要使用到格式文本的編輯與展示。但在SWT/JFACE組件中并未提供合適的組件來(lái)完成此任務(wù),Text與我們的要求相差甚遠(yuǎn)。我的OA系統(tǒng)中公文的正文部分需要一個(gè)合適的rich editor來(lái)完成此任務(wù)。

          于是蠻世界的尋找適合的java rich editor組件來(lái)完成這個(gè)需求,最后尋得兩個(gè)比較容易在eclipse rcp中采用的技術(shù)方案,這兩個(gè)方案我都在我的系統(tǒng)中應(yīng)用過(guò)

          1、使用ekit組件,ekit是不多的開(kāi)源java rich editor組件,而且從功能上來(lái)說(shuō)可以較好滿足文本格式的要求。因?yàn)樗莂wt組件,所以在eclipse rcp中使用它時(shí)要用SWT_AWT橋接器來(lái)完成SWT Compsite到awt frame的轉(zhuǎn)換。我用的方法是把ekit用SWT_AWT包裝了一下,做成了一個(gè)SWT組件易于我的程序調(diào)用。這種方式的缺點(diǎn)就是ekit本身不支持ole的拷貝,來(lái)源于其它ole程序粘貼的內(nèi)容復(fù)制要自己寫對(duì)應(yīng)的粘貼處理程序,挺煩的

          2、使用fckeditor或tinyMCE之類的基于javascript的web rich editor組件,然后使用SWT中的HtmlComposer組件調(diào)用。這種方式的好處是支持各種程序的ole粘貼,省心省力。

          順便show一下我們系統(tǒng)的rich editor,看看效果。如果其它同學(xué)有更好的方法也歡迎一起交流下!



          本人原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明文章出處!
          posted @ 2008-10-04 22:56 shanghai_spark 閱讀(2489) | 評(píng)論 (0)編輯 收藏

          其實(shí)也就是OFBiz 4.0的練習(xí)例子,我是照著OFBiz的文章做了N次嘗試,一是OFBiz的版本變動(dòng)太頻繁、二是文章中省略了大量的內(nèi)容(均假設(shè)你明白,我倒,我要明白我做這個(gè)例子干么?)、三有的地方確實(shí)就是錯(cuò)的(常見(jiàn)于路徑問(wèn)題)

          自己吃的苦就不希望后來(lái)者再嘗一遍嘍,整理下放在這里,待有緣人來(lái)取,哈...

          本人制作,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處!

          下載地址
          posted @ 2008-10-03 12:00 shanghai_spark 閱讀(1754) | 評(píng)論 (5)編輯 收藏

          opentaps是一個(gè)基于ofbiz基礎(chǔ)開(kāi)發(fā)的完全開(kāi)源的企業(yè)級(jí)應(yīng)用系統(tǒng)。它包括了完整的ERP和CRM解決方案和內(nèi)建的企業(yè)智能工具。

          opentaps現(xiàn)在在國(guó)內(nèi)應(yīng)用面不象sugarcrm/vtigercrm這些企業(yè)應(yīng)用那樣普遍,我想很大程度是由于JavaEE應(yīng)用的邏輯結(jié)構(gòu)嚴(yán)謹(jǐn)與復(fù)雜度決定其不象PHP應(yīng)用那樣容易拆分按需閱讀切入。了解一個(gè)JavaEE的應(yīng)用需要先了解其構(gòu)造的框圖、分層結(jié)構(gòu)、每層實(shí)現(xiàn)的技術(shù)方式以及采用的技術(shù)。對(duì)于OFBiz這樣一個(gè)野心極大要囊括幾乎所有企業(yè)應(yīng)用層面的項(xiàng)目,想要掌握它就更難上加難了,也許我們可以選擇簡(jiǎn)單開(kāi)始,先從文檔的中文化與由簡(jiǎn)入繁的練習(xí)中開(kāi)始了解這個(gè)龐大的開(kāi)源項(xiàng)目。


          閑話少說(shuō),我們先從opentaps的安裝開(kāi)始,讓我們能夠在自己的機(jī)器上跑起opentaps開(kāi)始,也許你一直在尋找的企業(yè)應(yīng)用已經(jīng)全部在此嘍!

          準(zhǔn)備工作:
          1、安裝JDK 1.5或以上版本,并在系統(tǒng)中設(shè)置好JAVA_HOME及相關(guān)PATH
          2、安裝MYSQL 5.0或以上版本
          3、安裝ANT1.7或以上版本,并在系統(tǒng)中設(shè)置好ANT_HOME及相關(guān)PATH
          4、從以下地址下載opentaps 1.0.2二進(jìn)制版本
          http://nchc.dl.sourceforge.net/sourceforge/opentaps/opentaps-1.0.2-all-platforms.zip

          開(kāi)始安裝:
          1、通過(guò)mysql命令行來(lái)創(chuàng)建opentaps所需數(shù)據(jù)庫(kù),為了方便識(shí)別,我們這里就用opentaps來(lái)做數(shù)據(jù)庫(kù)吧。
          mysql> create database opentaps;

          2、將下載的opentaps-1.0.2-all-platforms.zip解壓至你的工作目錄。

          3、編輯opentaps目錄中的framework/entity/config/entityengine.xml文件,使其能正確連接到你的mysql數(shù)據(jù)庫(kù)中。
          3.1 將其中的<delegator name="default"...> 段中的"datasource-name"從原來(lái)的"local" 改為 "localmysql"
          3.2 編輯<datasource name="localmysql"...> 段內(nèi)容,修改"jdbc-uri"為"jdbc:mysql://127.0.0.1/opentaps?autoReconnect=true";修改"jdbc-username"/ "jdbc-password"為你的mysql連接用戶名/密碼,修改character-
          set="gbk",collate="gbk_bin",示例如下:

           

              <delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
                  
          <group-map group-name="org.ofbiz" datasource-name="localmysql"/>
              
          </delegator>
              
          <delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false">
                  
          <group-map group-name="org.ofbiz" datasource-name="localmysql"/>
              
          </delegator>

              
          <delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
                  
          <group-map group-name="org.ofbiz" datasource-name="localmysql"/>
              
          </delegator>
              
          <delegator name="other" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
                  
          <group-map group-name="org.ofbiz" datasource-name="localmysql"/>        
              
          </delegator>




              
          <datasource name="localmysql"
                      helper-class
          ="org.ofbiz.entity.datasource.GenericHelperDAO"
                      field-type-name
          ="mysql"
                      check-on-start
          ="true"
                      add-missing-on-start
          ="true"
                      check-pks-on-start
          ="false"
                      use-foreign-keys
          ="true"
                      join-style
          ="ansi-no-parenthesis"
                      alias-view-columns
          ="false"
                      drop-fk-use-foreign-key-keyword
          ="true"
                      table-type
          ="InnoDB"
                      character-set
          ="gbk"
                      collate
          ="gbk_bin">
                  
          <read-data reader-name="seed"/>
                  
          <read-data reader-name="demo"/>
                  
          <read-data reader-name="ext"/>
                  
          <inline-jdbc
                          
          jdbc-driver="com.mysql.jdbc.Driver"
                          jdbc-uri
          ="jdbc:mysql://127.0.0.1/opentaps?autoReconnect=true"
                          jdbc-username
          ="opentaps"
                          jdbc-password
          ="opentaps-password"
                          isolation-level
          ="ReadCommitted"
                          pool-minsize
          ="2"
                          pool-maxsize
          ="20"/>



          4、進(jìn)行系統(tǒng)初始化
          在命令行窗口下,進(jìn)入opentaps根目錄后運(yùn)行
          ant run-install
          系統(tǒng)開(kāi)始安裝,等大約15-30分鐘后,系統(tǒng)提示安裝完成。


          啟動(dòng)opentaps
          雙擊運(yùn)行opentaps目錄下的startofbiz.bat命令即可,請(qǐng)注意控制臺(tái)輸入默認(rèn)輸出至log下的ofbiz.log中,所以無(wú)法從控制臺(tái)中判斷系統(tǒng)是否啟動(dòng)完成,一般需等待兩到五分鐘。也可以將輸出改回至console。

          訪問(wèn)opentaps
          打開(kāi)瀏覽器訪問(wèn):http://localhost:8080/
          點(diǎn)擊你希望訪問(wèn)的功能特性,系統(tǒng)默認(rèn)帳號(hào)為
          admin/ofbiz,擁有所有權(quán)限。

           

           本人原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處!

          posted @ 2008-10-02 15:26 shanghai_spark 閱讀(3289) | 評(píng)論 (12)編輯 收藏

          僅列出標(biāo)題
          共6頁(yè): 上一頁(yè) 1 2 3 4 5 6 下一頁(yè) 
          主站蜘蛛池模板: 苍山县| 石林| 高唐县| 英山县| 巍山| 永康市| 平顶山市| 沈阳市| 依安县| 景宁| 阿坝县| 琼结县| 田林县| 瓦房店市| 托里县| 涡阳县| 乌苏市| 大安市| 瑞丽市| 藁城市| 平湖市| 德安县| 海南省| 巩留县| 土默特右旗| 西乡县| 且末县| 响水县| 博爱县| 屯昌县| 石棉县| 图木舒克市| 高尔夫| 沁源县| 香港 | 十堰市| 和硕县| 乐东| 合江县| 玉溪市| 莱芜市|