背景

做过oracle bpm开发的同学都知道,在调用oracle bpm相关api时,需要引入大量的jar包,导致应用包体积过大,部署一次需要大量的时间,本文介绍一种方案可以避免该问题。

实现

我觉得做开发都要有一个思维习惯,那就是,你觉得不合理的肯定有人已经解决了,能开发出oracle bpm这种重量级产品的都是大牛,我们都能发现的问题他们不可能没有发现,那他们是怎么解决的?oracle bpm自带一个workspace的应用,用户可以登录该应用进行流程的审批操作,我们可以看看官方是怎么处理jar包的,我们可以在console上找到该应用的位置

下载解压,并未发现大量的bpm引用包,那workspace是怎么做到的?在文件META-INFO/weblogic-application.xml中有这样一段配置:

<library-ref>
       <library-name>adf.oracle.domain</library-name>
   </library-ref>
   <library-ref>
       <library-name>oracle.soa.workflow</library-name>
   </library-ref>
   <library-ref>
       <library-name>oracle.soa.bpel</library-name>
   </library-ref>
   <library-ref>
       <library-name>oracle.rules</library-name>
   </library-ref>
    <library-ref>
        <library-name>oracle.jsp.next</library-name>
    </library-ref>
    <library-ref>
        <library-name>oracle.bpm.runtime</library-name>
    </library-ref>
    <library-ref>
        <library-name>oracle.bpm.client</library-name>
    </library-ref>
    <library-ref>
        <library-name>oracle.bpm.projectlib</library-name>
    </library-ref>
    <library-ref> 
        <library-name>oracle.bpm.workspace</library-name>
    </library-ref>
    <library-ref> 
        <library-name>oracle.bpm.webapp.common</library-name>
    </library-ref>

library-ref是声明引用的配置,类似maven中的dependency,应用中声明了应用,那么应用就无需包含相应的jar包,这些引用的包已经预先安装在weblogic上了,在weblogic中称之为”库(Libray)”,我们可以在console上找到这些引用

那么怎么在我们自己的程序中使用呢,由于这个是weblogic特有的功能,因此在web应用中需要创建一个weblogic.xml,在weblogic.xml可以声明引用,下面给出一个例子

  • weblogic.xml
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
    <context-root>bpm</context-root>
    <library-ref>
        <library-name>oracle.soa.workflow</library-name>
    </library-ref>
    <library-ref>
        <library-name>oracle.soa.bpel</library-name>
    </library-ref>
    <library-ref>
        <library-name>oracle.rules</library-name>
    </library-ref>
    <library-ref>
        <library-name>oracle.bpm.runtime</library-name>
    </library-ref>
    <library-ref>
        <library-name>oracle.bpm.client</library-name>
    </library-ref>
    <library-ref>
        <library-name>oracle.bpm.projectlib</library-name>
    </library-ref>
    <library-ref>
        <library-name>oracle.bpm.webapp.common</library-name>
    </library-ref>
</weblogic-web-app>
Trackback

no comment untill now

Add your comment now