基于Spring DM的WEB应用开发2011-07-20Spring DM 1.1.x的最大特性便是它可以支持在其中部署WEB应用,我使用后感觉这是个很酷的特性,我甚至觉得用这种方式开发基于OSGi WEB应用比使用Spring DM Server更好,至少目前你可以获得更好的便携性(可以在多个Spring DM支持的OSGi平台上运行),并且Spring DM Server并没有提供更多的企业应用支持。不过对于刚使用Spring DM进行WEB应用开发的人来说,成功地配置却不是一件容易的事。以下详细的讲解一下相关配置。1 运行环境所需的Bundles:0 ACTIVE system.bundle_3.2.2.R32x_v20070118 1 ACTIVE com.springsource.slf4j.api_1.5.0 2 RESOLVED org.springframework.osgi.jetty.web.extender.fragment.osgi_1.0.0 Master=46 3 ACTIVE org.springframework.bundle.osgi.extender_1.0.1.v200803070100 4 ACTIVE org.springframework.bundle.spring.core_2.5.5 5 ACTIVE org.springframework.bundle.spring.web_2.5.5 6 ACTIVE com.springsource.org.objectweb.asm_2.2.3 7 RESOLVED osgi_log_config_1.0.0 Master=36 8 ACTIVE org.springframework.bundle.osgi.core_1.0.1.v200803070100 9 ACTIVE com.springsource.slf4j.log4j_1.5.0 10 ACTIVE org.springframework.bundle.spring_2.5.2.v200803070100 11 ACTIVE org.springframework.bundle.spring.context_2.5.5 12 ACTIVE javax.servlet_2.4.0.v200706111738 13 ACTIVE org.springframework.osgi.servlet-api.osgi_2.5.0.SNAPSHOT 14 ACTIVE com.springsource.net.sf.cglib_2.1.3 15 ACTIVE org.springframework.bundle.spring.beans_2.5.5 16 ACTIVE javax.servlet.jsp_2.0.0.v200706191603 18 ACTIVE org.springframework.osgi.jetty.start.osgi_1.0.0 19 ACTIVE org.springframework.bundle.osgi.io_1.0.1.v200803070100 20 ACTIVE org.aopalliance_1.0.0 21 ACTIVE org.springframework.bundle.spring.context.support_2.5.5 23 ACTIVE com.springsource.org.aopalliance_1.0.0 24 ACTIVE org.springframework.bundle.spring.aop_2.5.5 25 ACTIVE com.springsource.slf4j.org.apache.commons.logging_1.5.0 30 ACTIVE org.objectweb.asm_2.2.3 33 ACTIVE org.mortbay.jetty.server_6.1.9 35 ACTIVE org.mortbay.jetty.util_6.1.9 36 ACTIVE org.springframework.osgi.log4j.osgi_1.2.15.SNAPSHOT Fragments=7 37 ACTIVE org.mortbay.jetty_5.1.11.v200706111724 43 ACTIVE org.springframework.bundle.osgi.extender_1.1.2 44 ACTIVE org.springframework.bundle.osgi.io_1.1.2 45 ACTIVE org.springframework.bundle.osgi.web_1.1.2 46 ACTIVE org.springframework.bundle.osgi.web.extender_1.1.2 Fragments=2 47 ACTIVE org.springframework.bundle.osgi.core_1.1.2以上这些Bundles可以在spring dm 1.1.2的发布包中找到,以上Bundles的start level设置为2.2 加入Log4j日志配置Bundles这个Bundles的目的在于提供log4j.properties,详细做法可以参考本人的“spring osgi快速入门”3 开发WEB应用WEB应用的开发方式和普通的WEB基本上一样,只是加入一些OSGi的配置。大致结构如下:META-INF MANIFEST.MF WEB-INF Classes Lib Web.xml applicationContext.xml