你在做如下更改時需要重新启動OFBiz服務器:

- Java文件(記得要重新編譯)

- 配置/.properties文件

- entitymodel或entitygroup XML定義文件

- 服務或secas XML文件

- JPublish XML文件

你在進行以下修改時無需重新启動OFBiz服務器:

- freemarker FTL模版

- beanshell BSH模版

- Screens XML文件

- Forms XML文件

- 控制器XML文件(注意:在opentaps-0.8和OFBiz 3.x及更早版本中,你在更改控制器時需要重启)

但有可能你需要在瀏覽器中清除緩存。比如修改使用的裝飾器  很多時候需要重新启動瀏覽器的 

忘記轉載哪裏  以前保存的下來的 

1.當客戶端發出請求時,調用第一個配置文件WEB-INF/controller.xml,根據請求的地址 
處理方法1:直接調用java類的方法 
<request-map uri="login"> 
        <security https="true" auth="false"/> 
        <event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="login"/> 
        <response name="success" type="view" value="main"/> 
        <response name="error" type="view" value="login"/> 
</request-map> 
如果为login,會查找path="org.ofbiz.webapp.control.LoginWorker"這個類的invoke="login" 
這個方法進行處理 
處理方式2:通過service配置文件取查找對應的service(常用) 
    <request-map uri="createForum"> 
        <security https="true" auth="true"/> 
        <event type="service" path="" invoke="createForum"/> 
        <response name="success" type="view" value="FindForum"/> 
        <response name="error" type="view" value="FindForum"/> 
    </request-map> 
表示調用的類型为type="service"調用的方法为invoke="createForum" 
2.進入servicedef/services.xml,這是service的配置文件 
  
從裏面找到上面對應的配置信息 
<service name="createForum" default-entity-name="GroupForum" engine="simple" 
            location="org/ofbiz/group/GroupServices.xml" invoke="createForum" auth="true"> 
        <description>Create a GroupForum</description> 
        <permission-service service-name="exampleGenericPermission" main-action="CREATE"/> 
        <auto-attributes include="pk" mode="OUT" optional="false"/> 
        <auto-attributes include="nonpk" mode="IN" optional="true"/> 
        <override name="forumName" optional="false"/> 
</service> 
文件配置的createForum這個文件實現的相關信息location="org/ofbiz/group/GroupServices.xml"表示實現 
是通過minilanguage配置文件 
3.進入script下面的org/ofbiz/group/GroupServices.xml文件 
通過minilanguage配置文件 
    <simple-method method-name="createForum" short-description="create a GroupForum"> 
        <make-value entity-name="GroupForum" value-name="newEntity"/> 
        <sequenced-id-to-env sequence-name="GroupForum" env-name="newEntity.forumId"/> <!-- get the next sequenced ID --> 
        <field-to-result field-name="newEntity.forumId" result-name="forumId"/> 
        <set-nonpk-fields map-name="parameters" value-name="newEntity"/> 
        <create-value value-name="newEntity"/>

</simple-method> 
配置了對entity-name="GroupForum"實體的創建的相關信息和操作,該步驟可以用java代碼實現. 
4.進入實體配置文件部分 
entitymodel.xml 
<entity entity-name="GroupForum" package-name="org.ofbiz.group" title="GroupForum Entity"> 
        <field name="forumId" type="id-ne"><!-- primary sequenced ID --></field> 
        <field name="forumName" type="name"></field> 
        <field name="description" type="description"></field> 
        <field name="authorID" type="id"></field> 
        <field name="created" type="date-time"></field>     
        <prim-key field="forumId"/> 
    </entity> 
配置了entity-name="GroupForum" 的實體與數據庫映射文件

entitygroup.xml 
<entitygroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/entitygroup.xsd">       
    <entity-group group="org.ofbiz" entity="GroupForum"/> 
    <entity-group group="org.ofbiz" entity="GroupCategory"/> 
    <entity-group group="org.ofbiz" entity="GroupThread"/> 
    <entity-group group="org.ofbiz" entity="GroupPost"/> 
</entitygroup> 
配置了實體名稱的組

5.service執行成功後會返回到展現邏輯配置部分,也就是WEB-INF/controller.xml中 
<request-map uri="login"> 
        <security https="true" auth="false"/> 
        <event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="login"/> 
        <response name="success" type="view" value="main"/> 
        <response name="error" type="view" value="login"/> 
</request-map> 
現在會請求到main中, 
<view-map name="main" type="screen" page="component://group/widget/group/CommonScreens.xml#main"/> 
在WEB-INF/controller.xml中找到main的配置信息 
該顯示用screen配置顯示component://group/widget/group/CommonScreens.xml#main

6.現在根據地址找到配置文件component://group/widget/group/CommonScreens.xml 
#main表示該文件中name为main的screen 
<screen name="main"> 
        <section> 
    <actions> 
                <set field="titleProperty" value="OrderOrderTaskList"/> 
                <set field="headerItem" value="tasklist"/> 
                <script location="component://order/webapp/ordermgr/WEB-INF/actions/task/ordertasklist.bsh"/> 
            </actions> 
            <widgets> 
                <decorator-screen name="main-decorator"> 
                    <decorator-section name="body"> 
                        <container style="screenlet"> 
                            <container style="screenlet-header"> 
                                <label style="boxhead" text="Main Page"/> 
                            </container> 
                            <container style="screenlet-body"> 
                                <section> 
                                    <condition><if-empty field-name="userLogin"/></condition> 
                                    <widgets> 
                                        <container><label text="${uiLabelMap.ExampleMessage}"/></container> 
                                    </widgets> 
                                </section> 
                                <container><label text="${uiLabelMap.Welcome}"/></container> 
                            </container> 
                        </container> 
                    </decorator-section> 
                </decorator-screen> 
            </widgets> 
        </section> 
    </screen>

<screen name="login"> 
        <section> 
            <widgets> 
                <decorator-screen name="main-decorator"> 
                    <decorator-section name="body"> 
                        <platform-specific> 
                            <html><html-template location="component://common/webcommon/login.ftl"/></html> 
                        </platform-specific> 
                    </decorator-section> 
                </decorator-screen> 
            </widgets> 
        </section> 
    </screen> 
</screens> 
該配置文件配置了顯示的數據以及顯示的格式 
其中數據是通過.bsh文件和service提供的,而顯示的格式为ftl文件提供的

7.進入group\webapp\group\WEB-INF\actions\forum在 
bsh为beansheel配置文件,語法與java類似,在這兒是为了提供顯示數據

import java.util.*; 
import java.io.*; 
import org.ofbiz.entity.*; 
import org.ofbiz.base.util.*;

security = request.getAttribute("security"); 
delegator = request.getAttribute("delegator"); 
userLogin = session.getAttribute("userLogin"); 
person = null; 
if (userLogin != null ) { 
    person = userLogin.getRelatedOne("Person"); 

forumId = request.getParameter("forumId"); 
categoryId = request.getParameter("categoryId"); 
if ( categroyId == null ||UtilValidate.isEmpty(categoryId) ){ 
categoryId = delegator.getNextSeqId("GroupCategory"); 
}

groupCategory = delegator.findByPrimaryKey("GroupCategory", UtilMisc.toMap("categoryId", categoryId)); 
context.put("forumId", forumId); 
context.put("categoryId", categoryId); 
context.put("groupCategory", groupCategory); 
context.put("person", person); 
該文件把需要的數據放到返回的上下文中

8.進入到group\webapp\group\forum\listForum.ftl 
該文件为Freemarker的文件,作用是代替jsp作顯示層 
<#if forums?has_content> 
Some of the famous celebrities who have visited our site:

<table> 
<ul> 
    <#list forums as forum> 
<tr> 
       <li><td><a href ="EditForum?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td>
           <td>12 ${forum.forumName?if_exists}</td> 
           <td> ${forum.description?if_exists}</td> 
          
       <li><td><a href ="deleteForum?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> 
</tr>

<tr> 
       <li><td><a href ="FindCategory?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> 
           <td><a href ="EditCategory?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> 
           <td> </td> 
          
       <li><td></td> 
</tr>

</#list> 
</ul> 
</table> 
</#if>

通過一些表達式和判斷把數據顯示出來,這样整個請求完畢

其他配置文件的作用: 
data目錄下的配置文件: 
<entity-engine-xml> 
    <UserLogin userLoginId="DemoBuyer" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> 
    <UserLogin userLoginId="DemoRepAll" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> 
    <UserLogin userLoginId="DemoRepStore" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> 
    <UserLogin userLoginId="DemoCustCompany" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> 
    <UserLogin userLoginId="DemoCustAgent" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> 
    <UserLogin userLoginId="DemoCustomer" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> 
    <UserLogin userLoginId="supplier" partyId="externaluser" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> 
    <UserLoginSecurityGroup groupId="ORDERSUPPLIER_LTD" userLoginId="supplier" fromDate="2001-01-01 12:00:00.0"/> 
</entity-engine-xml> 
配置了系統启動時後需要添加的一些數據

config目錄下的配置文件:为國際化配置信息 
   <property key="OrderCaughtExceptionOnCartUpdate"> 
        <value xml:lang="en">Caught exception on cart update. </value> 
        <value xml:lang="es">Excepción capturada en la actualización del carro.</value> 
        <value xml:lang="fr">%Exception attrapée dans la mise à jour du chariot. %</value> 
        <value xml:lang="it">Eccezione sull'aggiornamento carrello. </value> 
        <value xml:lang="ro">Exceptie la actualizarea cosului. </value> 
        <value xml:lang="zh">更新購物車時發生意外情況 </value> 
    </property>

widget裏面的form配置文件: 
    <form name="OrderPurchaseProductOptions" type="single" target="OrderPurchaseReportProduct.pdf" title="" extends="OrderPurchaseReportOptions"> 
        <field name="fromOrderDate" title="${uiLabelMap.OrderReportFromDate}"><date-time type="timestamp"/></field> 
        <field name="thruOrderDate" title="${uiLabelMap.OrderReportThruDate}"><date-time type="timestamp"/></field> 
        <field name="submitButton" title="${uiLabelMap.CommonRun}" widget-style="smallSubmit"><submit button-type="button"/></field> 
    </form> 
配置了一些表單信息,和screen一样,但是他可以直接顯示數據不需要使用Freemaerker的文ftl文件作頁面布局,根據配置信息可以直接生成

ofbiz-componet.xml文件配置了項目要加載的配置文件的信息,它可以告訴OFBIZ應用程序組件的相關信息:數據模型,商業邏輯,用戶接口,種子數據,以及其他程序需要的資源。 
   <ofbiz-component name="order" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd"> 
    <resource-loader name="main" type="component"/> 
    <classpath type="jar" location="build/lib/*"/> 
    <classpath type="dir" location="config"/> 
    <classpath type="dir" location="script"/> 
    <classpath type="dir" location="email"/> 
    <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/> 
    <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_old.xml"/> 
    <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_view.xml"/> 
    <entity-resource type="group" reader-name="main" loader="main" location="entitydef/entitygroup.xml"/> 
    <entity-resource type="eca" reader-name="main" loader="main" location="entitydef/eecas.xml"/> 
    <entity-resource type="data" reader-name="seed" loader="main" location="data/OrderTypeData.xml"/> 
    <entity-resource type="data" reader-name="seed-initial" loader="main" location="data/OrderScheduledServices.xml"/> 
    <entity-resource type="data" reader-name="seed" loader="main" location="data/OrderSecurityData.xml"/> 
    <entity-resource type="data" reader-name="demo" loader="main" location="data/OrderDemoUser.xml"/> 
    <entity-resource type="data" reader-name="demo" loader="main" location="data/OrderProcessWorkflow.xml"/> 
    <service-resource type="model" loader="main" location="servicedef/services.xml"/> 
    <service-resource type="model" loader="main" location="servicedef/services_cart.xml"/> 
    <service-resource type="model" loader="main" location="servicedef/services_shoppinglist.xml"/> 
    <service-resource type="model" loader="main" location="servicedef/services_request.xml"/> 
    <service-resource type="model" loader="main" location="servicedef/services_quote.xml"/> 
    <service-resource type="model" loader="main" location="servicedef/services_requirement.xml"/> 
    <service-resource type="model" loader="main" location="servicedef/services_return.xml"/> 
    <service-resource type="model" loader="main" location="servicedef/services_opportunity.xml"/> 
    <service-resource type="model" loader="main" location="servicedef/services_upgrade.xml"/> 
    <service-resource type="eca" loader="main" location="servicedef/secas.xml"/> 
   
    <test-suite loader="main" location="testdef/OrderTest.xml"/> 
   
    <webapp name="order" 
        title="Order" 
        server="default-server" 
        location="webapp/ordermgr" 
        base-permission="OFBTOOLS,ORDERMGR" 
        mount-point="/ordermgr"/> 
</ofbiz-component>

eca.xml配置了調用指定的entity或者service觸發的對應事件 
entity: 
    <eca entity="OrderHeader" operation="create-store" event="return"> 
        <condition field-name="statusId" operator="equals" value="ORDER_COMPLETED"/> 
        <condition field-name="needsInventoryIssuance" operator="equals" value="Y"/> 
        <action service="issueImmediatelyFulfilledOrder" mode="sync"/> 
    </eca> 
service: 
    <eca service="changeOrderItemStatus" event="commit"> 
        <condition field-name="statusId" operator="equals" value="ITEM_CANCELLED"/> 
        <action service="cancelOrderInventoryReservation" mode="sync"/> 
        <action service="recalcShippingTotal" mode="sync"/> 
        <action service="recalcTaxTotal" mode="sync"/> 
        <action service="resetGrandTotal" mode="sync"/> 
        <action service="checkOrderItemStatus" mode="sync"/> 
    </eca>

entityengine.xml配置了數據庫連接的相關信息 
    <datasource name="localmssql" 
            helper-class="org.ofbiz.entity.datasource.GenericHelperDAO" 
            schema-name="dbo" 
            field-type-name="mssql" 
            check-on-start="true"//启用的數據庫連接 
            add-missing-on-start="true" 
            join-style="ansi" 
            alias-view-columns="false" 
            use-fk-initially-deferred="false"> 
        <read-data reader-name="seed"/> 
        <read-data reader-name="seed-initial"/> 
        <read-data reader-name="demo"/> 
        <read-data reader-name="ext"/> 
        <inline-jdbc 
                jdbc-driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
                jdbc-uri="jdbc:sqlserver://10.0.70.15:1433;databaseName=ofbiz;SelectMethod=cursor;" 
                jdbc-username="ofbiz" 
                jdbc-password="ofbiz" 
                isolation-level="ReadCommitted" 
                pool-minsize="2" 
                pool-maxsize="250"/> 
        <!-- <jndi-jdbc jndi-server-name="default" jndi-name="comp/env/jdbc/xa/localmssql" isolation-level="ReadCommitted"/> --> <!-- Orion Style JNDI name --> 
    </datasource>

1、如何調試OFBiz

首 先你需要學習和熟悉OFBiz的教程與工具指導文檔。指導文檔特別重要,因为很多子主題內容不是排列最前的內容卻可能導致問題的發生。你應該熟悉類似於 Freemaker,beanshell,XML這些技術。你也應該有過處理那些與OFBiz無關問題的經驗,比如處理數據庫或服務器引起的問題。

現 在,你應該仔細查看日志文件了解你錯誤發生的原因。OFBiz在日志文件中提供大量的信息,這些信息將有助於你了解你遇到的問題。它比處理的藝術更重要。 哪些東西看上去工作有些特別,比如比如有些關聯程序將導致或影響到的結果,你都可以在日志文件中找到。如果你確實無法在日志文件中發現任何有用的東西,這 時增加你自己的日志信息直到你有足夠的信息來發現實際的問題所在。

本指引將向你介紹OFBiz的日志文件工作情況,如何增加你自己的日志記錄,以及一些常見信息的含義。這些知識的理解建立在你理解JAVA及其它相關的技術基礎上,所有問題的焦點只在於OFBiz的概念與信息內容中。

2. OFBiz日志文件

OFBiz創建較多日志文件並將它們存儲於logs/目錄(在opentaps-0.9或更早版本中)或framework/logs/(在opentaps-0.9之後版本),文件有:

- ofbiz.log.? - 記錄所有 OFBiz 生成日志信息。此文件將在滿時自動循環創建新文件,即 ofbiz.log 是當前日志文件, ofbiz.log.1 是較早些時間的日志文 件,ofbiz.log.2是比ofbiz.log.1更早時間的日志文件,以此類推。

- console.log - 記錄所有 OFBiz 在控制台界面運行顯示的內容。也有可能無效。

- access_log.? - 類似於 Apache httpd 日志格式記錄所有服務請求。很漂亮但對調試沒有什麼用處。

大多數據時間,你可以通過ofbiz.log或console.log來查詢調試信息。因为它們有很多內容,所以你最好使用一個可以翻頁與進行查找的編輯器來打開這些日志文件。

3、查找日志信息

Java日志信息最容易查找。它們的日志信息中通常有類名與行號生成:

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

Minilang方法日志中的類名均为Log.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中直接使用輸出,你輸出的內容將顯著的顯示於日志文件中:

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中使用調試方法,你將在日志中得到如下信息:

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

你可以为那些無法發現日志信息的minilang或beanshell代碼中加入自己的信息輸出。

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

4. 增加你自己的日志信息

在Java中增加你自己的日志信息,請使用OFBiz Debug類(org.ofbiz.base.util.Debug)中的調試方法,如logInfo,logWarning, logError...

示例:    Debug.logInfo("Now processing invoice " + invoiceId, module);

在beanshell中增加日志信息,同样使用Debug方法,但在內容中忽略如""這样內容。

在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節點屬性用於設置日志級別,如:"info", "warning", "error",對應於Debug中的同名方法。

5. 何時需要重启OFBiz

你在做如下更改時需要重新启動OFBiz服務器:

- Java文件(記得要重新編譯)

- 配置/.properties文件

- entitymodel或entitygroup XML定義文件

- 服務或secas XML文件

- JPublish XML文件

你在進行以下修改時無需重新启動OFBiz服務器:

- freemarker FTL模版

- beanshell BSH模版

- Screens XML文件

- Forms XML文件

- 控制器XML文件(注意:在opentaps-0.8和OFBiz 3.x及更早版本中,你在更改控制器時需要重启)

但有可能你需要在瀏覽器中清除緩存。比如修改使用的裝飾器  很多時候需要重新启動瀏覽器的 

6. 常見錯誤及其含義:

Cannot  locate service by name (captureBillingAccountPayment)

* 此服務 (captureBillingAccountPayment) 在所有 services.xml 定義中都找不到 .

Cannot find service location (org.ofbiz.order.order.OrderServices)

* 說明在 services XML 定義點上指向的資源不存在 .  如果這是一個 minilang 或 beanshell 服務,即服務引擎無法找到此文件。如果這是一個 Java 服務,則說明在 classpath 中無法查找到這個類。

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

* 含義是在某個 services.xml 指定的這個服務不存在對應的 Java 方法。通常發生於你在修改了 Java 文件後忘記再次編譯它來使新增的方法生效。

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

* 系統無法取得實體的下一個自動 ID ,通常發生於數據庫斷開情況。

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

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

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

* 這是一個非常令人討厭的錯誤信息。通常它意味着你訪問的服務所觸發的 ECA 鏈服務中有一個服務失敗,於是導致全部的操作失敗。服務引擎無法为你進一步跟 蹤,所以你需要進入log文件中進一步查找錯誤原因。訪問你的logs/ofbiz.log 或logs/console.log文件去了解觸發錯誤的根本原因。

Unable  to bind UserTransaction/TransactionManager to JNDI

* 這是在 opentaps 0.8/0.9 及 OFBiz 的 pre-Geronimo 版本在 Linux 系統下可能會發生的一個問題 .  解决方法可以在以下網址中找到 :

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.

* 這是一個 XSL:FO 錯誤並意味着你在文本中使了字符 '&' ,比如說你在描述或地址中使了這個字符。 XSL:FO 使用 xml 屬性格式,所以你需要確認你在文本字段後放置 ?xml 。

7 . 遠程 debug 調試:

如果是自己寫的 java 實現代碼,或找到了 ofbiz 的 java 實現代碼,可以以監聽模式启動 ofbiz, 在 ofbiz 启動後,運行 debug, 就可以對所選的 java 類進行遠程斷點調試,在調試當中,如果想要改代碼,可以暫時不用重新編譯,用 debug 的 execute 執行一下,可以欺騙當前運行,起到了不重启即可看到更新的效果。

轉載自. 真忘記哪了 以前保存下來的

何時需要重启 OFBiz的更多相关文章

  1. ofbiz 本地化及邮件设置126邮箱

    ofibz登陆功能有通过电子邮件找会密码的功能,但找回密码功能需要配置一个发送email的邮箱账号和smtp服务器的配置,具体配置如下: 1:在ofbiz数据库的表product_store_emai ...

  2. 【转】Ofbiz学习经验谈

    不可否认,OFBiz这个开源的系统功能是非常强大的,涉及到的东西太多了,其实对我们现在而言,最有用的只有这么几个:实体引擎.服务引擎.WebTools.用户权限管理.最先要提醒各位的是,在配置一个OF ...

  3. OFBiz:添加实体栏位

    如何添加实体栏位?这里演示为PostalAddress添加planet栏位.打开applications/party/entitydef/entitymodel.xml,找到PostalAddress ...

  4. OFBiz进阶之HelloWorld(五)创建新实体

    参考文档 https://cwiki.apache.org/confluence/display/OFBIZ/OFBiz+Tutorial+-+A+Beginners+Development+Guid ...

  5. OFBiz进阶之HelloWorld(三)CRUD操作

    参考文档 https://cwiki.apache.org/confluence/display/OFBIZ/OFBiz+Tutorial+-+A+Beginners+Development+Guid ...

  6. Hyper-V 激活Windows系统重启后黑屏的解决方法 + 激活方法

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...

  7. DB2重启数据库实例

    DB2重启数据库实例时,有时停止实例会失败,此时需要先确认没有应用链接数据库,然后再关闭数据库实例,并重新启动. 1.查看是否有活动的链接 命令:db2 list applications for d ...

  8. OpenGL ES 3.0: 图元重启(Primitive restart)

    [TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...

  9. Android 捕获异常并在应用崩溃后重启应用

    问题概述: 在Android应用开发中,偶尔会因为测试的不充分导致一些异常没有被捕获,这时应用会出现异常并强制关闭,这样会导致很不好的用户体验,为了解决这个问题,我们需要捕获相关的异常并做处理. 首先 ...

随机推荐

  1. Poco::Path 和 DirectoryIterator

    #include<iostream>#include<typeinfo>#include<Poco/Path.h>using namespace std;using ...

  2. js ajax向后台传数组可以直接拼接传输

    ajax向后台传数组是可以直接传的,写法如下 var ids = [ ]; $(dom1).each(function(){ ids.push($(this).val()); }); var  use ...

  3. [codeforces/edu2]总结(F)

    链接:http://codeforces.com/contest/600 A题: 字符串处理. B题: sort+upper_bound C题: 统计一下每种字符的个数,然后贪心. (1) 如果没有奇 ...

  4. Leetcode 485. 最大连续1的个数

    1.题目描述(简单题) 给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 ...

  5. 使用kubeadm安装Kubernetes 1.12

    使用kubeadm安装Kubernetes 1.12 https://blog.frognew.com/2018/10/kubeadm-install-kubernetes-1.12.html 测试环 ...

  6. Fixed: The Windows Process Activation Service service terminated with the following error: The system cannot find the file specified

    I'm not yet clear what I did, but I'm blogging it so it can be found if someone else has this issue. ...

  7. Linux下设置mysql和tomcat开机启动

    本文基于CentOS 64位     一.mysql设置开机启动 1.cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ...

  8. iOS通知传值

    NSMutableDictionary *params = [NSMutableDictionary dictionary]; params[@"loginName"] = @&q ...

  9. js高阶函数--判断数据类型、函数胡柯里化;

    一.判断数据类型: 常见的判断有typeof.instanceof. constructor. prototype,先来看typeof: var a = "hello world" ...

  10. 51nod 1766 树上的最远点对——线段树

    n个点被n-1条边连接成了一颗树,给出a~b和c~d两个区间,表示点的标号请你求出两个区间内各选一点之间的最大距离,即你需要求出max{dis(i,j) |a<=i<=b,c<=j& ...