转到正文

OneCMDB中文

研究和推广OneCMDB,传递ITIL&ITSM知识。

存档

分类: OneCMDB使用
//Execute执行信息如下
Starting NMAP2BasicModel_NMAP to Basic Model
NMAP2BasicModel_NMAP to Basic Model starting...
Config loaded...
MDR info loaded...
History created [MDR_HistoryEntry-0-1278245005829] ...
Initilize Params START...
	icon=mdrConfig
	autoCommit=null
	mdrRepository=MDR_NMAP2CMDB-1
	name=NMAP to Basic Model
	program=bin/nmap2cmdb
	status=null
Initilize Params END...
Exec Thread Started...
Start path set to '/home/xiaoyi/onecmdb/repository/MDR/NMAP2BasicModel'
Program path set to '/home/xiaoyi/onecmdb/repository/MDR/NMAP2BasicModel/bin/nmap2cmdb'
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] start.
NMAP2BasicModel/bin/nmap2cmdb - [STDERR]Will wait...
Direct stdout to /home/xiaoyi/onecmdb/repository/MDR/NMAP2BasicModel/logs/stdout-nmap2cmdb-20100704-200325
Direct stderr to /home/xiaoyi/onecmdb/repository/MDR/NMAP2BasicModel/logs/stderr-nmap2cmdb-20100704-200325
Start Exec...
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] start.
Shell for .sh resolved to '/bin/bash'
CMD-LIST : [/bin/bash, /home/xiaoyi/onecmdb/repository/MDR/NMAP2BasicModel/bin/nmap2cmdb.sh, --mdr_history, MDR_HistoryEntry-0-1278245005829, --mdrRepository, MDR_NMAP2CMDB-1, --icon, mdrConfig, --onecmdb_token, 14da86b, --name, NMAP_to_Basic_Model, --program, bin/nmap2cmdb]
NMAP2BasicModel/bin/nmap2cmdb - [STDIN] start.
NMAP2BasicModel/bin/nmap2cmdb - [STDIN]Will wait...
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT]Will wait...
NMAP2BasicModel/bin/nmap2cmdb - [STDIN] started.
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] started.
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] started.
NMAP2BasicModel/bin/nmap2cmdb - [STDIN] no reader set.
NMAP2BasicModel/bin/nmap2cmdb - [STDIN] auto-close streams
NMAP2BasicModel/bin/nmap2cmdb - [STDIN] terminated
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - ============ENVIRONMENT=====================
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - ONECMDB_HOME=/home/xiaoyi/onecmdb
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - JAVA_HOME=/home/xiaoyi/onecmdb/jre
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - NAMP_HOME=/home/xiaoyi/onecmdb/nmap
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - ONECMDB_URL=http://localhost:8080
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - ONECMDB_DESKTOP_URL=http://localhost:8080/onecmdb-desktop
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - ============================================
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - HISTORY=MDR_HistoryEntry-0-1278245005829 TOKEN=14da86b
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - Transform output.
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:31,714 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'nmap2cmdb' to class DataSet'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:31,969 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'fw-nmap2cmdb' to class ForwardInstanceSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,037 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'fw-network' to class ComplexAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,080 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'network' to class DataSet'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,127 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'instanceSelector-network' to class XPathInstanceSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,172 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'network-1-Name' to class XPathAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,216 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'fw-system' to class ComplexAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,241 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'system' to class DataSet'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,287 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'instanceSelector-system' to class XPathInstanceSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,314 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'system-1-MAC_Address' to class XPathAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,340 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'system-2-IPAddress' to class XPathAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,363 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'system-3-IPv6Address' to class XPathAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,389 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'system-4-Hostname' to class XPathAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,431 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'system-5-Network' to class XPathComplexAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,560 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'fw-os' to class ComplexAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,591 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'os' to class DataSet'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,614 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'instanceSelector-os' to class XPathInstanceSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,642 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'os-1-InstalledOn' to class XPathComplexAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,923 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'fw-sAppl' to class ComplexAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,944 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'sAppl' to class DataSet'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,969 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'instanceSelector-sAppl' to class XPathInstanceSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:32,990 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'sAppl-1-InstalledOn' to class XPathComplexAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:33,308 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'sAppl-2-Port' to class XPathAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:33,330 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'sAppl-3-Protocol' to class XPathAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:33,350 INFO [org.onecmdb.core.utils.bean.BeanClassInjector] - <Map alias 'sAppl-4-Name' to class XPathAttributeSelector'>
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - null
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 	network
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 	system
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 	os
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 	sAppl
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - 2010-07-04 20:03:33,704 INFO [org.onecmdb.core.utils.transform.TransformEngine] - <WSDL query avg: 0.0ms [matched 0]>
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - java.lang.IllegalArgumentException: Error: Server returned HTTP response code: 400 for URL: http://localhost:8080/onecmdb-desktop/onecmdb/export?name=NMAP/nmap.cfg
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.core.utils.transform.TransformBeanProvider.getBeans(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.utils.wsdl.OneCMDBTransform.process(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.utils.wsdl.OneCMDBTransform.process(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.utils.wsdl.AbstractCMDBCommand.start(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.utils.wsdl.OneCMDBTransform.main(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at java.lang.reflect.Method.invoke(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.utils.classloader.RemoteClassLoader.main(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - Caused by: java.io.IOException: Server returned HTTP response code: 400 for URL: http://localhost:8080/onecmdb-desktop/onecmdb/export?name=NMAP/nmap.cfg
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at java.net.URL.openStream(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.core.utils.transform.xml.XMLDataSource.getNodes(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.core.utils.transform.xml.XPathInstanceSelector.getInstances(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.core.utils.transform.DataSet.getInstances(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.core.utils.transform.TransformEngine.generateInstances(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.core.utils.transform.TransformEngine.generateInstances(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.core.utils.transform.TransformEngine.transform(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	at org.onecmdb.core.utils.transform.TransformBeanProvider.transform(Unknown Source)
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] - 	... 10 more
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - Runtime 6855ms
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] - Transform FAILED!
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] auto-close streams
Exec Ended [7787ms], result=1 - null
Update History....
NMAP2BasicModel/bin/nmap2cmdb - [STDERR] terminated
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] auto-close streams
NMAP2BasicModel/bin/nmap2cmdb - [STDOUT] terminated
History update complete
Execution Completed

例子中没有如何建立策略的例子啊,现在我想在一个CI变更时调用一个java的类,貌似这里面优惠雕功能,但是不知道该具体怎么配置,不胜感激

以下为OneCMDB探索回复内容,可供参考

如果想在CI变更时调用Java类,则需要使用事件策略。登录之后再System View中定位到Policy->EventPolicy,然后切换到Edit Allowed视图,点击Add按钮就可以添加事件策略了。

几个重要参数:
callbackClass:需要调用的类名称,该类需实现org.onecmdb.core.IEventPolicyCallback,该接口只有onPolicyEvent这个方法,OneCMDB会自动调用onPolicyEvent方法。
OnRfc:标明作用于哪个RFC上,如果作用域修改属性请求上,则为org.onecmdb.core.internal.ccb.rfc.RFCModifyAttributeValue,其他类似,为ccb.rfc下面的类型。
attributePattern:应用事件策略的属性匹配表达式,应该和query函数中XPath语法一致。
callbackClassPath:类的寻找路径列表,OneCMDB会从给定的路径列表中查找callbackClass中指定的类,并加载该类。其本质是使用java.net.URLClassLoader.URLClassLoader加载类并实例化。

有效Rfc类别为
org.onecmdb.core.internal.ccb.rfc.RFCNewCi
org.onecmdb.core.internal.ccb.rfc.RFCNewAttribute
org.onecmdb.core.internal.ccb.rfc.RFCDestroy
org.onecmdb.core.internal.ccb.rfc.RFCModifyAlias
org.onecmdb.core.internal.ccb.rfc.RFCModifyAttributeType
org.onecmdb.core.internal.ccb.rfc.RFCModifyAttributeReferenceType
org.onecmdb.core.internal.ccb.rfc.RFCModifyDerivedAttributeValue
org.onecmdb.core.internal.ccb.rfc.RFCModifyAttributeValue
org.onecmdb.core.internal.ccb.rfc.RFCModifyDescription
org.onecmdb.core.internal.ccb.rfc.RFCModifyIsTemplate
org.onecmdb.core.internal.ccb.rfc.RFCModifyDescription
org.onecmdb.core.internal.ccb.rfc.RFCModifyDisplayNameExpression
org.onecmdb.core.internal.ccb.rfc.RFCModifyMaxOccurs
org.onecmdb.core.internal.ccb.rfc.RFCModifyMinOccurs

 

一个参考实现:

public class EventPolicyCallback implements IEventPolicyCallback {

    public static final String VALUE_NOT_ALLOWED = "ValueNotAllowed";

    public IRfcResult onPolicyEvent(IObjectScope scope, IRFC rfc, ICi ci) {
        RfcResult result = new RfcResult();
        if (rfc instanceof RFCModifyAttributeValue) {
            RFCModifyAttributeValue modValue = (RFCModifyAttributeValue)rfc;
            String newValue = modValue.getNewValue();
            if (newValue != null && newValue.equals(VALUE_NOT_ALLOWED)) {
                result.setRejectCause("POLICY-DENY: Value <" + VALUE_NOT_ALLOWED + "> s not allowed!!!");
            }
        }
        System.out.println("OnEVENT….");
        return(result);
    }
}

OneCMDB探索于2010-6-27 编辑。

默认的数据库能正常启动,按照网站上的文档更改配置文件DataSource.xml后出现启动错误。

2010-6-24 15:19:45 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2010-6-24 15:19:45 org.apache.catalina.core.StandardContext start
严重: Context [] startup failed due to previous errors

是什么原因?

OneCMDB使用Hibernate作为数据访问层,默认是支持Oracle数据库的,只需要更改数据访问参数就可以了。

OneCMDB Core中有关数据访问的配置位于<WebAppRoot>/WEB-INF/classes/datasource.xml中,这里WebAppRoot是Web应用的根目录,默认是tomcat-5.5.17/webapps/ROOT,如果找不到搜索一下吧。

datasource.xml原来内容如下:

<bean id="dataSource"
        class="org.onecmdb.core.internal.storage.DataSourceWrapper"
        destroy-method="close" >
        <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
        <property name="url" value="jdbc:hsqldb:hsql://localhost" />
        <property name="username" value="sa" />
        <property name="password" value="" />

        <property name="initialSize" value="0" />
        <property name="maxActive" value="8" />
        <property name="minIdle" value="0" />
        <property name="maxIdle" value="8" />

        <property name="connectionProperties">
            <props>
                <prop key="shutdown">false</prop>
            </props>
        </property>
    </bean>

    <!--  Hibernate configuration taking the 'dataSoure' defintion  -->
    <!--  in account, specifically the dialect to use.              -->
    <!--                                                            -->
    <bean id="hibernateProperties" class="org.onecmdb.core.internal.storage.HibernateProperty">
        <property name="properties">
            <props>
                <prop key="hibernate.dialect">org.onecmdb.core.internal.storage.hibernate.hsql.HypersonicSQL18Dialect</prop>
                <prop key="show_sql">true</prop>
                <prop key="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop>
                <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.jdbc.batch_size">20</prop>
            </props>
        </property>
    </bean>

Oracle 10g和Oracle11g修改为下配置:

<bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
        <property name="url"
            value="jdbc:oracle:thin:@localhost:1521:Demo" />
        <property name="username" value="system" />
        <property name="password" value="demotest" />

        <property name="initialSize" value="0" />
        <property name="maxActive" value="8" />
        <property name="minIdle" value="0" />
        <property name="maxIdle" value="8" />

        <property name="connectionProperties">
             <props>
                   <prop key="shutdown">false</prop>
             </props>
        </property>
</bean>

    <bean id="hibernateProperties" class="org.onecmdb.core.internal.storage.HibernateProperty">
        <property name="properties">
                <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
                    <prop key="show_sql">true</prop>
                    <prop key="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop>
                    <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
                    <prop key="hibernate.hbm2ddl.auto">create-update</prop>
                </props>
        </property>
    </bean>

Oracle9i使用以下配置:

<bean id="dataSource"
        class="org.onecmdb.core.internal.storage.DataSourceWrapper"
        destroy-method="close" >
        <property name="driverClassName" value="oracle.jdbc.OracleDriver" />
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:Demo" />
        <property name="username" value="system" />
        <property name="password" value="demotest" />

        <property name="initialSize" value="0" />
        <property name="maxActive" value="8" />
        <property name="minIdle" value="0" />
        <property name="maxIdle" value="8" />

        <property name="connectionProperties">
            <props>
                <prop key="shutdown">false</prop>
            </props>
        </property>
    </bean>

    <!--  Hibernate configuration taking the 'dataSoure' defintion  -->
    <!--  in account, specifically the dialect to use.              -->
    <!--                                                            -->
    <bean id="hibernateProperties" class="org.onecmdb.core.internal.storage.HibernateProperty">
        <property name="properties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
                <prop key="show_sql">true</prop>
                <prop key="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop>
                <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
                <prop key="hibernate.hbm2ddl.auto">create-update</prop>
                <prop key="hibernate.jdbc.batch_size">20</prop>
            </props>
        </property>
    </bean>

其中黑体加粗斜体部分为修改的内容,修改好之后重新启动tomcat,即可重新在数据库中建立数据库结构。再次修改hibernate.hbm2ddl.auto属性为update,重启tomcat即可正常使用oracle数据库。

完成之后使用执行ROOT\WEB-INF\classes目录下create-index.sql中的语句建立索引(根据报错情况修改sql语句)。

或者使用附件中的sql文件完成表结构建立(hibernate.hbm2ddl.auto属性设置为update)。附件:onecmdb4Oracle.sql

原wiki文章:http://www.onecmdb.org/wiki/index.php?title=Build_Instructions_V2.0

设置Eclipse IDE中编译OneCMDB源代码环境过程

=====================================

1)在安装目录中找到src.zip文件,解压到一个工作区中(说明:可以先在Eclipse中建立一个新的工作区)

2)移动src目录下所有文件到工作区当前工作目录中,并删除src目录(说明:就是把src目录所有文件剪切到上层目录,并删掉src目录)

3)我们需要至少创建下列java项目:

3.1 org.onecmdb

3.2 org.onecmdb.core

3.3 org.onecmdb.utils

3.4 org.onecmdb.ui.gwt.desktop

4)在org.onecmdb项目下创建以下目录结构

org.onecmdb

|_3rdpart-depts

  |_lib

  |_compile-time

  |_compile-time2

(说明:即在org.onecmdb目录下建立3rdpart-depts目录,并在3rdpart-depts目录下建立lib、compile-time、compile-time2三个目录)

5)拷贝<installdir>/tomcat*/WEB-INF/lib/*目录下所有的库文件到3rdpart-depts/lib目录下

6)下载junit-4.1.jar and servlet-api.jar (2.x) 文件,并放到compile-time目录下(可使用http://www.findjar.com查找jar文件)

构建内核

=====================================

1)在Eclipse中给创建一个User library,添加3rdpart-depts/lib目录下和3rdpart-depts/compile-time目录下所有jar文件

2)设置org.onecmdb项目依赖于该User library,并在项目属性Build Path中设置导出该库。(说明:项目右键菜单中点击properties然后进入Java Build Path设置,并在Order and Export中选中该库)

3)设置org.onecmdb.core项目依赖于org.onecmdb项目并导出所有库文件

4)可以编译代码了

5)在org.onecmdb项目中创建属性文件onecmdb.properties,并添加下面几行:(红色部分)

onecmdb.version=2.0.1

onecmdb.core.version=2.0.1

onecmdb.utils.version=0.8.0

onecmdb.gwt.desktop.version=2.0.1 # 这个版本号将显示在desktop登录页面中.

6)使用build.xml来清除(clean)、分发(dists)、构建(build)内核jar文件

构建utils

=====================================

1)设置utils项目依赖org.onecmdb.core项目

2)编译代码

构建Desktop程序

=====================================

1)下载gwt 1.5.3(http://code.google.com/webtoolkit/versions.html)并解压

2)拷贝根目录下所有jar文件到compile-time2/gwt1.5目录

3)下载gxt 1.2.4(http://www.extjs.com/products/gxt/)

4)拷贝gxt.jar文件到compile-time2/gwt1.5目录

5)编译代码

使用GWT Hosted Mode启动测试

=====================================

1)用cd命令切换到ws/org.onecmdb.ui.gwt.desktop目录

2)执行下面的命令创建应用

/path-to/gwt-1.5.3/applicationCreator.cmd -eclipse org.onecmdb.ui.gwt.desktop -out dummy org.onecmdb.ui.gwt.deskt op.client.CMDBApplication

说明:使用-out dummy参数之后其他文件会被覆盖掉,我们只需要产生的文件

3)删除dummy/CMDBApplication*目录下所有文件

4)拷贝repoistry目录到org.onecmdb.ui.gwt.desktop目录

5)刷新org.onecmdb.org.ui.desktop目录

6)现在一个新的CMDBApplicarion应用程序应该产生了(说明:新的onecmdb-desktop.jar文件)

7)为启动这个应用程序设置class-path参数,chass-path需要包含src目录和gxt.jar文件

8)现在可以启动这个应用了。