- 浏览: 2870071 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
关于本文
本文记录了将Spring Web
Application应用到OSGI环境中,也就是OSGI Web应用。
[请点击这里下载本文的Eclipse工程]
org.phrancol.osgi.demo.launcher工程中启动应用。
一、准备工作
1,JDK
1.5
2,Eclipse 3.3-jee (MyEclipse)
3,Spring-framework-2.1-m3
4,Spring-osgi-1.0-m2
二、搭建环境
1,首先当然需要一个Http
Server,那就用Eclipse自带的Jetty吧。
2,将Jetty和它的依赖包作为 Plugin 工程导入Eclipse, Import
-> Plug-ins and fragments -> Next
3,创建一个普通工程做为Eclipse Launch的存放目录 org.phrancol.osgi.demo.launcher
4,Open
Run Dialog ... -> OSGI Framework -> New Configuration
,名字改为org.phrancol.osgi.demo.web.launcher,在
Common面板Save as 里面的 Shared
file指定目录到 org.phrancol.osgi.demo.launcher
6,在OSGI输入exit退出,(注:如果不退出,那么它将驻留内存,大概会消耗20K的内存)
三、Equinox/Spring-osgi环境
导入Spring-osgi和它的依赖包(注:导入Spring包的时候,plug-in Location 要指定Spring-osgi的lib目录),导入完毕后,形成的project结构如下图
四、jpetstore
使用Spring自带的jpetstore,代码和配置文件都是现成的,能省去一些不必要的开发。
五、首页
jpetstore默认是springmvc,向HttpService注册Servlet或是Resource,jpetstore里面需要注册的servlet就是ContextLoaderServlet和DispatcherServlet,resource则是view层的jsp等。
1,创建个plug-in project ,OSGI Framework选择Equinox,创建Activator,org.phrancol.osgi.jpetstore.springmvc
2,创建一个web目录,这个目录就是web应用的目录,将jpetstore里面的WEB-INF/jsp目录拷贝进去
3,在 META-INF 目录中创建 dispatcher 目录,将petstore-servlet.xml拷贝进去,修改成如下代码
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<!--
- DispatcherServlet application context for the Spring web MVC
- implementation of JPetStore's web tier.
-->
<beans>
<!-- ========================= VIEW DEFINITIONS ========================= -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/web/jsp/spring/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- ========================= DEFINITIONS OF PUBLIC CONTROLLERS ========================= -->
<bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean name="/shop/index.do" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<property name="viewName" value="index"/>
</bean>
</beans>
4,在Activator的start(BundleContext context)里面注册servlet和resource,代码如下
ServiceReference sr = context.getServiceReference(HttpService.class
.getName());
HttpService httpService = (HttpService) context.getService(sr);
httpService.registerResources("/", "/web", null);
httpService.registerServlet("/*.jsp", new JspServlet(context
.getBundle(), "/web/jsp"), null, null);
Dictionary<String, String> initparams = new Hashtable<String, String>();
initparams.put("load-on-startup", "1");
DispatcherServlet dispatcherServlet = new DispatcherServlet();
dispatcherServlet
.setContextConfigLocation("META-INF/dispatcher/petstore-servlet.xml");
initparams = new Hashtable<String, String>();
initparams.put("servlet-name", "petstore");
initparams.put("load-on-startup", "2");
httpService.registerServlet("/*.do", dispatcherServlet, initparams,
null);
}
注意依赖包关系
启动后,在访问http://localhost/shop/index.do页面,报错,看来要解决一下标签库问题,在web目录中建立一个WEB-INF目录,将c.tld,
fmt.tld拷贝进去,然后在osgi控制台refresh springmvc,再访问这个页面,发现没有图片,把jpetstore/images目录拷贝到web目录下,再refresh一下,OK,首页出来了。
六、结束语
这部分简单记录了如何使用springmvc,下部分将记录如何将jpetstore的各个层通过spring-osgi应用起来
发表评论
-
spring mvc @controller unit test
2013-11-20 14:14 38861. spring mvc controller imple ... -
Tomcat 生产服务器性能优化
2013-07-23 06:45 1007试想以下这个情景:你已经开发好了一个程序,这个程序的排版很不 ... -
Loading Multiple Spring Application Contexts with their own ClassLoader
2013-07-11 20:45 1072package de.incompleteco.spring ... -
ActiveMQ JMS的测试
2011-04-06 18:15 3918有二种方式可以测试。 1. 透过testng, 在测试类中完 ... -
Maven系列2--pom.xml 配置详解
2011-01-06 18:00 3176<project xmlns="http ... -
fisheye2.3.6 安装笔记
2010-09-16 20:25 2235一. 准备工作 1. 下载fisheye ... -
服务器端编程的十大性能问题
2010-09-15 12:01 1233今年5 月底,瑞士计算 ... -
JMX in spring 配置
2010-09-07 12:00 3050JConsole中的连接:简单的localhost:1099 ... -
Ehcache 2.0:后写式缓存和JTA支持
2010-05-22 11:13 1854开源缓存框架Ehcache 最 ... -
Twitter系统运维经验
2010-04-12 22:24 1551最近看到的另外一个 ... -
采用OSGi框架开发项目的十个问题
2010-03-21 18:08 1462近期,InfoQ针对Java模块 ... -
IBM和Eclipse加大对OSGi的支持
2010-03-21 18:05 1272为Java提供模块性的OSGi,正在受到IBM和Eclipse ... -
Castor功能与应用参考
2010-03-12 12:48 36271. 项目简介Castor是一个开源的Java项目 ... -
hibernate之 DetachedCriteria实现多表查询
2009-07-25 17:13 13092DetachedCriteria detachedCriter ... -
spring AOP 理论知识点总结
2009-07-24 17:47 21741.1 AOP 的概念 ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2009-07-02 16:14 4124在项目中总会遇到一些 ... -
maven笔记
2009-06-22 22:14 1530mvn package : 项目打包 mvn help:ef ... -
利用maven构建多模块项目
2009-06-17 14:28 53611. 先单独构建各模块为一个独立的项目。 jar项目: m ... -
Maven基础
2009-06-17 12:58 1859下载Maven安装文件。 定义环境变量M2_HOME到pat ... -
安装M2eclipse步骤
2009-06-15 14:45 38221.下载下列所需文件 eclipse3.4.2 ...
相关推荐
Spring-osgi 是 Spring 框架的一个扩展,它支持 OSGi(Open Service Gateway Initiative)容器,提供了模块化、动态和可扩展的应用程序开发环境。 描述中的链接指向了一篇 ITeye 博文,虽然具体内容未给出,但可以...
Web Application Bundle (WAB) 是一种特殊的OSGi Bundle,它可以作为一个Web应用运行。WAB包含传统的Web项目元素,如Web-INF目录和web.xml,同时还包含OSGi元数据,如MANIFEST.MF文件,使得它们能够作为OSGi模块运行...
是一本适合新接触OSGI开发学习的一本很好的书,本书介绍了Equinox, Spring-DM和Felix这三个常用的OSGi容器的使用、开发、以及WebApplication的开发部署;介绍了OSGi的规范和Core Framework和Layer。包含书中的用例源...
5. **Web Support**:Spring DM增加了对Web应用的支持,使得开发者可以更方便地在OSGi环境中部署和管理Web应用。 6. **Classpath Resource Abstraction**:引入了资源抽象层,使得开发者可以通过统一的方式访问类...
通过以上步骤,我们成功地构建了一个基于Eclipse RCP的富客户端Web程序,并将其与Spring框架进行了有效整合。这种方式不仅能够充分发挥Spring在服务端的优势,还能充分利用Eclipse RCP在客户端方面的强大功能,为...
* Building modular services using OSGi with Spring DM and Spring Dynamic Modules and SpringSource dm Server. * Delivering web applications with Spring Web Flow, Spring MVC, Spring Portals, Struts, ...
运行嵌入式Apache Felix OSGI容器的示例Spring Boot Web应用程序 这个想法是能够: 加载运行嵌入式Felix Framework的基本Spring Boot App。 使用标准的注解(例如Spring Web控制器和ServletFilter等),使用普通...
手册涵盖了从环境搭建到应用程序部署的全过程,是一份不可多得的学习资料。 ### 核心知识点 #### 1. **Virgo Web Server(VWS)概述** - **定义与特性**:Virgo Web Server(VWS)是基于OSGi规范构建的,旨在...
Spring Factories是Osgi服务的实现,允许我们在不修改代码的情况下动态扩展应用。 总结起来,Spring Boot的核心在于它的自动配置和简洁的启动方式。`@SpringBootApplication`注解和`SpringApplication.run()`方法是...
One of the first (if not the first) books on the latest Spring 3.x, and the first Spring code Recipes book focused on Spring Web-tier development The Spring framework is growing. It has always been ...
- **Vaadin**: 支持 Vaadin 框架,这是一个基于 GWT 的 Web RIA(Rich Internet Application)框架。 - **Velocity**: 支持 Velocity 模板引擎。 #### 二、配置建议 - **选择适合自己的插件**: 根据项目需求和个人...
2.5版本的Spring提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,以及对Web应用的全面支持,包括MVC控制器、视图解析器等,大大提升了应用的可测试性和可维护性。 ### Struts Struts框架分为两个主要版本:...
如何让一个应用响应一个特定端口 使用JNDI 使用JNDI 在JNDI中配置数据源(DataSource) 内嵌Jetty服务器 内嵌Jetty教程 内嵌Jetty的HelloWorld教程 内嵌Jetty视频 优化Jetty 如何配置垃圾收集 如何配置以支持高负载 ...
- **嵌入H2到应用中**(Embedding H2 in an Application):文档将提供如何将H2数据库嵌入到Java应用程序中,并启动和使用H2控制台应用程序的详细步骤。 - **H2控制台应用程序**(The H2 Console Application):...
- **WEB-INF**:存放Spring的配置文件,如applicationContext.xml、applicationOSGI.xml、applicationSecurity.xml、dispatcher-servlet.xml和web.xml,分别处理Bean声明、OSGI服务引用、安全认证和Web配置。...
- **OSGi**:为Java平台定义了一个动态模块系统,Equinox 和 SpringDM 是其中两个实现。 - **SOA框架**:如Apache Tuscany,用于构建服务导向架构(SOA)应用。 - **P3:特定领域框架** - **Flex/Sliverlight**:...
- WebService、SOA(Service-Oriented Architecture)、ESB(Enterprise Service Bus)、OSGI(Open Service Gateway Initiative)、EAI(Enterprise Application Integration)等架构概念。 - **面向资源架构** ...
12. **部署与发布**:对于Web应用,Eclipse可以连接到应用服务器(如Tomcat、Jetty),进行应用的部署和调试。 13. **Problems视图和Error Log视图**:显示项目中存在的问题和错误,便于定位和修复。 14. **...
常见的Java模块化框架有Spring Boot和OSGi,它们通过定义清晰的接口和依赖关系,使得模块间的交互更加有序。本项目可能采用了Spring Boot,它简化了Spring框架的配置,并集成了多种微服务组件,如数据访问、安全控制...