分类 JAVA 下的文章

ofbiz目录结构和几个重要文件

===================ofbiz整体结构=====================
applications 目录,包含了OFBIz 核心的应用程序组件,如订单管理,电子商务存储等。
component-load.xml 文件定义了所有在OFBIZ启动时需要加载的应用程序的位置。这里的每一个组件,都是一个基于OFBIZ 构建的Web 应用程序。 所以,创建新的应用程序时,需要在该文件中添加应用程序的位置信息。但是在ofbiz\hot-deploy\目录下的应用程序不需要在component-load.xml里定义,ofbiz启动时会自动加载所有hot-deploy下的内容。

Framework 框架目录,包含OFBIZ 框架的组件,例如实体引擎和服务引擎。这是OFBIZ 框架的基础,它们负责数据访问、缓存、展示窗口、管理事务以及更多应用组件使用的低级任务。

hot-deploy 热部署目录,是另一个目录。它的组件能够被删除和自动载入。这里没有
component-load.xml 这个文件。本目录中所有的组件,都会在framework 和application 目录下的组
件被导入之后导入。
另外这个目录不需要通过component-load.xml来制定加载他们,这个目录下面符合ofbiz规则的都会被加载。

specialpurpose
殊目的的组件通常是没有取得作为OFBiz核心组件的资格。它们仅仅为一部分OFBiz用户服务。既然他们是(或者应该是)可选的,OFBiz可以(或者应该)在没有这些组件时候运行。这些组件在 ${OFBizInstallFolder}\specialpurpose目录中。

runtime
存放日志,web服务器等
===================ofbiz组件结构=====================

- 阅读剩余部分 -

ofbiz中screen的<condition>元素

<condition>元素是<section>的一个子元素。如果该元素的条件计算是真,那么then部分将被执行,否则else将被执行。
如:
<condition> <or> <and> <if-has-permission permission="PROJECTMGR_ADMIN"/> <not><if-has-permission permission="PROJECTMGR_ROLE_ADMIN"/></not> </and> <and> <if-has-permission permission="PROJECTMGR_ROLE_ADMIN"/> <if-compare field="isMember" value="true" operator="equals"/> </and> <and> <if-has-permission permission="PROJECTMGR_VIEW"/> <not><if-has-permission permission="PROJECTMGR_ROLE_VIEW"/></not> <if-compare field="parameters.mainAction" value="VIEW" operator="equals"/> </and> <and> <if-has-permission permission="PROJECTMGR_ROLE_VIEW"/> <if-compare field="isMember" value="true" operator="equals"/> <if-compare field="parameters.mainAction" value="VIEW" operator="equals"/> </and> </or> </condition> <then> <field-to-result field="hasPermission"/> <return/> </then> <else> <property-to-field resource="ProjectMgrUiLabels" property="ProjectMgrNoAccessToProject" field="failMessage"/> <field-to-result field="failMessage"/> <field-to-result field="hasNoPermission" result-name="hasPermission"/> <return/> </else>

condition内部可以放12种条件语句。分别是:

- 阅读剩余部分 -

用eclipse启动(run)或调试(debug)ofbiz项目

受不鸟每次通过startogbiz.bat来启动ofbiz了,于是Google一下简单的按步骤配置了一下:

参考官方配置地址:https://cwiki.apache.org/OFBIZ/running-and-debugging-ofbiz-in-eclipse.html

1.右击项目 -> Debug As -> debug configurations

2.右击Java Application -> New,新建之后每个标签页的具体配置如下:

  • Main
    • Project: OFBiz
    • Main class: org.ofbiz.base.start.Start
  • Arguments
    • VM arguments: -Xms128M -Xmx512M -XX:MaxPermSize=128m  (当然,数据越大越好~看你配置啦!此外,这个也可以留空不填)
    • Working directory: 使用默认的Default就好
  • Classpath
    • Bootstrap Entries: JRE System Library
    • User Entries: 导入ofbiz项目中的"ofbiz.jar"
      • 移除User Entries里的 "ofbiz (default classpath)" 否则可能会报异常 "Can't find bundle for base name cache, locale ..."
  • Source
    • 点击“Add”->"Java Project",选择ofbiz项目
  • Environment
    • 新增一个新的环境变量 LC_ALL=C (可选, 非Linux环境无需配置)

3.右击项目 -> Properties -> Java Build Path -> Libraries -> Add Class Folder ,勾选ofbiz/framework/base/config ,按OK 确定

4.OK,现在可以在eclipse里Run或者Debug啦。

如果有异常“could not load vfs configuration from webslinger……”,直接删除两个文件就可以:

1.删除文件 : OFBIZ_HOME\framework\webslinger\lib\webslinger-20091211-3897-7ab22baea4b6.jar\META-INF\vfs-providers.xml

2.删除文件: OFBIZ_HOME\bin\META-INF\vfs-providers.xml

解决ofbiz的UTF-8乱码问题

新项目要基于OFBIZ进行二次开发,做一个电子商务的网站,由于OFBIZ中FTL模板默认编码是GBK,改模板的时候发现UTF-8显示乱码,万能的GOOGLE之后找到解决方案。
在根目录下startofbiz.bat中找到

"%JAVA_HOME%\bin\java" -Xms128M -Xmx512M -XX:MaxPermSize=128m -jar ofbiz.jar

改为

"%JAVA_HOME%\bin\java" -Xms128M -Xmx512M -XX:MaxPermSize=128m -Dfile.encoding=UTF-8  -jar ofbiz.jar

就是加上了“ -Dfile.encoding=UTF-8 ”这么一句,重新启动后,就能正常显示UTF-8的中文了。

热评文章

最新文章

最近回复

归档

其它