泛微协同商务系统Ecology系统底层包开发指南.docx
- 文档编号:2812112
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:30
- 大小:30.91KB
泛微协同商务系统Ecology系统底层包开发指南.docx
《泛微协同商务系统Ecology系统底层包开发指南.docx》由会员分享,可在线阅读,更多相关《泛微协同商务系统Ecology系统底层包开发指南.docx(30页珍藏版)》请在冰豆网上搜索。
泛微协同商务系统Ecology系统底层包开发指南
1.引言
1.1概述
本文档为泛微协同商务系统(Ecology)程序员开发指导文档,讲述了开发底层工具包的应用,常用功能的开发。
2.底层包应用及范例
本章对ecology系统的底层工具包进行讲解,开发人员可以从这里学到怎样利用底层的工具包进行开发
2.1最基本的继承类
系统中每一个javabean都需要继承weaver.general.BaseBean类。
这个类实现了记录日志和获取属性文件值的方法。
继承这两个类的其它类可直接应用这些方法来记录日志,获取属性文件某一个属性的值。
方法的实现见后面的例子。
继承的例子如下:
javabean的继承
publicclassResourceComInfoextendsBaseBean{
publicvoiddoSomething(){//某一个方法
方法的处理………
writeLog(s);//写日志
}
}
2.2怎样记录日志
继承了weaver.general.BaseBean,可以直接使用writeLog方法记录日志信息。
注意这里是使用,而不是调用,因为这个方法是这两个被继承类中的方法。
注意writeLog方法的使用:
/**
*将某个对象写入Log文件
*@paramobj被写入的对象
*/
publicvoidwriteLog(Objectobj)
我们看到,可以被记入日志的是任意一个java对象。
这些java对象将被自动转换成字符串对象(String)记入到日志文件中。
日志文件将每天生成一个,以日志文件名称中的日期来区别,比如:
ecology_20030812.log,代表2003年8月12日的日志。
当天的日志为ecology.log。
每一条日志的记录格式为:
YYYY.MM.DD-HH:
MM:
SS记录日志的类名–日志信息
比如:
2003.03.11-06:
52:
05weaver.datacenter.OutReportResult-sqlisselectROUND(sum(F_sksr),5)fromT_yyrbA,CRM_CustomerInfowhereCRM_CustomerInfo.id=A.crmidandCRM_CustomerInfo.idin(5)andA.reportdate>='2004-01-10'andA.reportdate<='2004-03-10'andA.inputstatus>='0'andA.inputstatus<>'9'andA.modtype='0'
日志的记录有两种模式,第一种为调试模式,第二种为在线模式。
在第一种模式下,所有的java对象都会记录到日志文件中,包括调试信息,在第二种模式下,只有为Exception(异常)的对象才会记录到日志文件中。
模式的设置在/ecology/WEB-INF/log4jinit.properties属性文件中的log4j.rootLogger属性来指定,如下:
log4j.rootLogger=INFO,A2
#ifyouwanttoopenthetracefromopensource,justadd#aheadofline
log4j.logger.org=ERROR
log4j.logger.uk=ERROR
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.DatePattern='_'yyyyMMdd'.log'
#don'tmodifythefileproperty
log4j.appender.A2.File=@ecology
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-ddHH:
mm:
ss,SSS}%-5p%c-%m%n
上面的日志表明将所有的信息答应到文件日志文件中,其中日志的模式为:
#FATAL0
#ERROR3
#WARN4只有WARN,ERROR,FATAL输出
#INFO6所有的log都输出
#DEBUG7
记录日志的例子如下:
publicclassResourceComInfoextendsBaseBean{
privatevoidsetResourceInfo()throwsException{
try{
业务处理过程……….
StringdebugInfo="Thisistest";
//在调试模式下将会记入日志文件
writeLog("debuginfois"+debugInfo);
}
catch(Exceptione){
//在任何模式下出现异常,都将会记入日志文件
writeLog(e);
throwe;
}
}
}
记录的日志文件形式为:
2007-10-1516:
51:
50,125DEBUGweaver.hrm.resource.ResourceComInfo-debuginfoisThisistest
如果有异常,将会记录为:
2007-10-1516:
51:
50,125ERRORweaver.hrm.resource.ResourceComInfo-java.sql.SQLException:
[Microsoft][SQLServerJDBCDriver][SQLServer]形式参数'@id_1'定义为OUTPUT,但实际参数却未声明为OUTPUT。
atcom.microsoft.jdbc.base.BaseExceptions.getException(UnknownSource)
atcom.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(UnknownSource)
atcom.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(UnknownSource)
atcom.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(UnknownSource)
atcom.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(UnknownSource)
atcom.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(UnknownSource)
atcom.microsoft.jdbc.base.BaseSmonExecute(UnknownSource)
atcom.microsoft.jdbc.base.BaseStatement.executeInternal(UnknownSource)
atcom.microsoft.jdbc.base.BasePreparedStatement.execute(UnknownSource)
atweaver.conn.RecordSet.executeProc(RecordSet.java:
155)
atweaver.conn.RecordSet.executeProc(RecordSet.java:
109)
atweaver.hrm.resource.ResourceComInfo(ResourceComInfo.java:
59)
atcom.caucho.jsp.JavaPage.service(JavaPage.java:
87)
atcom.caucho.jsp.JavaPage.subservice(JavaPage.java:
81)
atcom.caucho.jsp.Page.service(Page.java:
410)
atcom.caucho.server.http.Invocation.service(Invocation.java:
319)
atcom.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:
333)
atcom.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:
266)
atcom.caucho.server.TcpConnection.run(TcpConnection.java:
140)
atjava.lang.Thread.run(Thread.java:
484)
从上面的日志信息,可以看到ResourceComInfo类的59行代码运行的时候出现错误,这个错误是执行数据库操作的脚本错误,具体的错误信息是:
形式参数'@id_1'定义为OUTPUT,但实际参数却未声明为OUTPUT。
说明调用数据库脚本的时候参数的数量有出入。
开发过程中请将日志级别设置为INFO,通过日志可检查程序在哪里出错了。
2.3怎样获取属性文件的值
继承了weaver.general.BaseBean的类,可以直接使用getPropValue方法获取属性文件的值。
注意这里是使用,而不是调用,因为这个方法是这两个被继承类中的方法。
注意getPropValue方法的使用:
/**
*从配置文件中获取某个属性的值
*@paramfname属性文件名称
*@paramkey值
*@returnString属性值
*/
publicStringgetPropValue(Stringfname,Stringkey)
getPropValue方法指定了从某一个属性文件fname中获取键值key的值。
这里的属性文件必须存放在系统运行目录下的WEB-INF/prop目录下,文件名称为参数fname指定的文件名,不包括属性文件的后缀名,属性文件的后缀名必须为.properties。
比如:
系统的运行目录为d:
\ecology\,那么属性文件必须放在d:
\ecology\WEB-INF\prop\目录下,取名为thefilename.properties,其中thefilename是任意的。
在属性文件中某一个键值的值用等号来赋值,等号后面的值必须放在一行,如果一行不够写(或者为了查看的方便),可以用\来链接多行。
否则其它行的值不能被键值取得。
等号左右都可以有空格,对键值和键值的值没有影响。
比如:
thekeyname=thevalue
将键值的值放到多行:
thekeyname=thevalue1\
thevalue2\
thevalue3
thevalue4
这时候thekeyname的值为thevalue1thevalue2thevalue3,thevalue4取不到,因为thevalue3后面没有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 协同 商务 系统 Ecology 底层 开发 指南
![提示](https://static.bdocx.com/images/bang_tan.gif)