首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

SpringDM札记6-Fragment及配置Log4j Fragment Bundle

2012-08-13 
SpringDM笔记6-Fragment及配置Log4j Fragment Bundle?? 未配置日志配置文件前,系统会抛出下面异常:?? log4

SpringDM笔记6-Fragment及配置Log4j Fragment Bundle

?? 未配置日志配置文件前,系统会抛出下面异常:

?? log4j:WARN No appenders could be found forlogger(org.springframework.osgi.extender.internal

?? .boot.ChainActivator). log4j:WARN Please initialize the log4j system properly.

1. Using the fragement configuration pattern

??? 一个Fragment是一个incomplate的Bundle,没有指定主Bundle是不能单独存在的,他不许附属于一个Host

??? Bundle. 它可以包含配置信息,classs文件,资源文件,但它不能有自己的Activator类或类加载器。

?

??? The host bundle can’t itself be a fragment and must be a full-fledged bundle, even if it relies on its

??? fragment to add classes or resources. A fragment can serve many purposes, such as completing

??? its host bundle with specific classes or providing configuration through resources (property or XML

??? files).

2. SpringDM's extender Export出来的通过Fragment可被修改的值:

??? (1)spring-osgi-extender.jar Bean Values Exposed for Fragments:见附件spring-osgi-extender.jar?

??? Bean Values Exposed for Fragments.jpg;

??? (2)spring-osgi-web-extender.jar Bean Values Exposed for Fragments:见附件spring-osgi-web-

??? extender.jar Bean Values Exposed for Fragments.jpg.

3. 实现Log4jFragment

??? (1) Fragement目录结构:

??? log4j-config/
?????? META-INF/

????????? MANIFEST.MF
?????? log4j.properties???????

??? (2)MAINFESt.MF文件:

???? Manifest-Version: 1.0
???? Fragment-Host: com.springsource.org.apache.log4j
???? Bundle-Version: 1.0.0
???? Bundle-Name: Log4J Configuration
???? Created-By: 1.6.0_13 (Sun Microsystems Inc.)
???? Bundle-ManifestVersion: 2
???? Bundle-SymbolicName: com.springsource.org.apache.log4j.config

?

???? (3) log4j.properties:

???? log4j.rootLogger=INFO, FILE

???? log4j.appender.FILE=org.apache.log4j.FileAppender
???? log4j.appender.FILE.File=SpringDM.log
???? log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
???? log4j.appender.FILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n%M
????
???? (4) 打包生成JAR:

???? 在log4j-config上一级目录中执行:

???? jar cvfm log4j-config.jar log4j-config/META-INF/MANIFEST.MF -C log4j-config 。

???? 生成log4j-config.jar。

4.? 安装该Fragement至OSGi 容器

???? 在config.ini文件组中增加:bundles/log/log4j-config.jar

???? 启动容器后,该Bundle的状态为:RESOLVED。

5.? 实现启用SpringDM注解功能的Fragment

???? (1)目录组织结构

???? SpringDM-Annotation-config/
???????????? META-INF/

??????????????? spring/

????????????????????? extender/

??????????????????????????? annotation-activator.xml

??????????????? MANIFEST.MF??

???? (2) MANIFEST.MF文件

???? Manifest-Version: 1.0
???? Bundle-ManifestVersion: 2
???? Fragment-Host: org.springframework.bundle.osgi.extender
???? Bundle-SymbolicName: com.apress.springosgi.ch4.fragment
???? Bundle-Name: HelloWorld Spring-OSGi Fragment
???? Bundle-Description: Spring-DM Fragment for activating OSGi annotation scanning

???? (3) annotation-activator.xml文件

???? <?xml version="1.0" encoding="UTF-8"?>
???? <beans xmlns="http://www.springframework.org/schema/beans"
??????????? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
??????????? xsi:schemaLocation="http://www.springframework.org/schema/beans
??????????? http://www.springframework.org/schema/beans/spring-beans.xsd">
??????????? <bean id="extenderProperties">
?????????????????? <property name="process.annotations" value="true"/>
??????????? </bean>
???? </beans>

热点排行