`
liyixing1
  • 浏览: 961872 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

关于ofbiz-component.xml文件中的resource-loader

 
阅读更多
寻找文件的方式最后是通过ComponentConfig.java的getURL方法来解析的
public URL getURL(String resourceLoaderName, String location) throws ComponentException {
        ResourceLoaderInfo resourceLoaderInfo = resourceLoaderInfos.get(resourceLoaderName);
        if (resourceLoaderInfo == null) {
            throw new ComponentException("Could not find resource-loader named: " + resourceLoaderName);
        }

        if ("component".equals(resourceLoaderInfo.type) || "file".equals(resourceLoaderInfo.type)) {
//如果是<resource-loader name="main" type="component" />
            String fullLocation = getFullLocation(resourceLoaderName, location);
            URL fileUrl = UtilURL.fromFilename(fullLocation);
            if (fileUrl == null) {
                throw new ComponentException("File Resource not found: " + fullLocation);
            }
            return fileUrl;
        } else if ("classpath".equals(resourceLoaderInfo.type)) {
            String fullLocation = getFullLocation(resourceLoaderName, location);
            URL url = UtilURL.fromResource(fullLocation);
            if (url == null) {
                throw new ComponentException("Classpath Resource not found: " + fullLocation);
            }
            return url;
        } else if ("url".equals(resourceLoaderInfo.type)) {
            String fullLocation = getFullLocation(resourceLoaderName, location);
            URL url = null;
            try {
                url = FlexibleLocation.resolveLocation(location);
            } catch (java.net.MalformedURLException e) {
                throw new ComponentException("Error with malformed URL while trying to load URL resource at location [" + fullLocation + "]", e);
            }
            if (url == null) {
                throw new ComponentException("URL Resource not found: " + fullLocation);
            }
            return url;
        } else {
            throw new ComponentException("The resource-loader type is not recognized: " + resourceLoaderInfo.type);
        }
    }

其中主要是看
就是用getFullLocation(resourceLoaderName, location);方法
它做的事是判断如果类型是component,就进行rootLocation+location。而rootLocation就是组建所在路径,而location就是我们的entity-resource或者service-resource等等设置的location。
另外这个方法还有几个操作,判断是否要使用prependEnv,如果使用,会添加上prependEnv

if (UtilValidate.isNotEmpty(resourceLoaderInfo.prependEnv)) {
            String propValue = System.getProperty(resourceLoaderInfo.prependEnv);
            if (propValue == null) {
                String errMsg = "The Java environment (-Dxxx=yyy) variable with name " + resourceLoaderInfo.prependEnv + " is not set, cannot load resource.";
                Debug.logError(errMsg, module);
                throw new IllegalArgumentException(errMsg);
            }
            buf.append(propValue);
        }

//判断是否要添加prefix
        if (UtilValidate.isNotEmpty(resourceLoaderInfo.prefix)) {
            buf.append(resourceLoaderInfo.prefix);
        }
由此可以得出,resource-loader元素的完整配置是
<resource-loader name="main" type="component" prepend-env="" prefix=""/>
分享到:
评论

相关推荐

    apache-ofbiz-16.11.05

    最新版OFBiz,apache-ofbiz-16.11.05,apache-ofbiz-16.11.05

    apache-ofbiz-13.07.02.zip

    apache-ofbiz-13.07.02.zip

    apache-ofbiz-16.11.02源码+ofbiz菜鸟笔记+Apache+OFBiz+开发初学者指南

    apache-ofbiz-16.11.02.zip,ofbiz菜鸟笔记,Apache+OFBiz+开发初学者指南.chm

    OFBiz-manual-zh.doc

    OFBiz-manual-zh.docOFBiz-manual-zh.docOFBiz-manual-zh.docOFBiz-manual-zh.docOFBiz-manual-zh.doc

    ofbiz-birt.pdf

    在本文中,我们将深入了解如何使用Business Intelligence Reporting Tools (BIRT)与Open For Business (OFBiz)框架集成,以生成专业外观的报告。BIRT是一个强大的工具套件,用于从数据库生成报告,它可以无缝地集成...

    ofbiz-entry-zh-cn.doc

    不用解压ofbiz-entry-zh-cn.zip 直接把zip修改为doc 即可。 ofbiz-entry-zh-cn.doc 博文链接:https://jiasudu.iteye.com/blog/157892

    开源ERP-apache-ofbiz-17.12.07.zip

    Apache OFBiz 是用于企业流程自动化的开源产品,包括 ERP(企业资源规划)、CRM(客户关系管理)、电子商务/电子商务、SCM(供应链管理)、MRP(制造资源规划)、MMS / EAM(维护管理系统/企业资产管理)的框架组件...

    apache-ofbiz-09.04.01.zip

    ofbiz 的源代码和工程,这个是9版本的。

    component-loader.xsd

    component-loader.xsd

    ofbiz开发者入门教程

    2. 在"hot-deploy/practice"目录下,创建一个名为"ofbiz-component.xml"的组件配置文件。这个文件包含了组件的元数据,告诉Ofbiz如何加载和管理你的组件。文件内容如下: ```xml &lt;ofbiz-component name="practice" ...

    ofbiz 学习文档.doc

    `ofbiz-component.xml`是应用程序的核心配置文件,它指定了数据模型(`&lt;entity-resource&gt;`)、业务逻辑(`&lt;service-resource&gt;`)和Web应用程序(`&lt;webapp&gt;`)的位置。通过这些配置,Ofbiz知道如何查找并执行相关的...

    apache-ofbiz-16.11.06.zip

    OFBiz是一个十分有名的框架,这是他的16版本代码,OFBiz可用于开发ERP,支持网站,分为前端Widget,中间Service/ServiceEngine,后台Entity/EntityEngine.

    ofbiz--A Beginners Development Guide--Part 2

    在本文中,我们将探讨Ofbiz的一些核心概念,以及如何利用`component-load.xml`配置文件和`practice`目录中的资源进行开发实践。 1. **Ofbiz框架介绍** Ofbiz是由Apache软件基金会维护的一个项目,它基于Java技术,...

    开源ERP-apache-ofbiz-17.12.04.zip

    Apache OFBiz 是用于企业流程自动化的开源产品,包括 ERP(企业资源规划)、CRM(客户关系管理)、电子商务/电子商务、SCM(供应链管理)、MRP(制造资源规划)、MMS / EAM(维护管理系统/企业资产管理)的框架组件...

    Ofbiz-EntityrefReport.pdf

    这个模型是用XML来定义的,它描述了数据库中的表结构以及实体之间的关系。 **Budget Entity** `Budget`实体是预算系统的核心,它由以下字段组成: 1. `budgetId`(主键):预算的唯一标识符,类型为VARCHAR(20)。 2...

    opentaps 结构分析

    每个组件目录下的`ofbiz-component.xml`文件描述了组件的相关属性,包括entity-resource的定义、测试用例的位置、类路径设置以及服务资源等。对于应用程序(APP),组件还能定义其虚拟路径,使得在系统中可以方便地...

    开源ERP-apache-ofbiz-18.12.12

    Apache OFBiz 是用于企业流程自动化的开源产品,包括 ERP(企业资源规划)、CRM(客户关系管理)、电子商务/电子商务、SCM(供应链管理)、MRP(制造资源规划)、MMS / EAM(维护管理系统/企业资产管理)的框架组件...

Global site tag (gtag.js) - Google Analytics