Equinox Servlet
本例采用扩展点的方式,注册Servlet和web资源。
Step1: 建立Eclipse plugin-in工程
Step2: 新建一个Servlet类
package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloServlet extends HttpServlet{ /** * */ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.getWriter().println("hello"); } } |
Step3: Eclipse提示HttpServlet找不到,在MANIFEST.MF中添加对javax.servlet的依赖
后两项是扩展点中注册servlet时需要的bundle;
Step4: 在项目根目录下新建WebContent目录,并新建jsp目录,index.jsp文件
index.jsp文件
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> index........... </body> </html> |
Step5: 在项目根目录下新建plugin.xml(在MANIFEST.MF的overview中点击Extensions链接可自动生成)
<?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.4"?> <plugin> <extension point="org.eclipse.equinox.http.registry.resources"> <resource alias="/images" base-name="/WebContent/img"/> </extension> <extension point="org.eclipse.equinox.http.registry.servlets"> <servlet alias="/hello" class="servlet.HelloServlet" load-on-startup="true"> </servlet> <servlet alias="/jsp/*.jsp" class="org.eclipse.equinox.jsp.jasper.registry.JSPFactory:/WebContent/jsp/"/> </extension> </plugin> |
Step6: Run Configure
新建一个OSGi Framework
取消Bundles的Target Platform, 点击Add Required Bundles:只需要添加我们需要的bundle。
注意,添加jetty
org.eclipse.equinox.http.jetty是手动添加的,其余的是add required Bundles自动添加的
Step7: run
在控制台中执行ss命令
osgi> ss
我们的bundle的状态时ACTIVE,表示已经可用;
在浏览器中,访问http://localhost/hello, http://localhost/jsp/index.jsp,http://localhost/images/1.jpg
Step8: 更新源码
更新源码时,Eclipse不会自动刷新bundle,可以通过命令update 5(5是bundle的bundleID)强制执行
Equinox Servlet相关推荐
- Eclipse Ganymede:深入Equinox p2(供应平台)
http://www.infoq.com/cn/news/2008/06/eclipse-ganymede-p2 P id=rf-f5>作为预定6月25日发布的Eclipse Ganymede的 ...
- AndroidStudio3.0无法打开Android Device Monitor的解决办法(An error has occurred on Android Device Monitor)...
---恢复内容开始--- 打开monitor时出现 An error has occurred. See the log file... ------------------------------- ...
- OSGI实战中的问题:Exception in org.eclipse.datatools.enablement.oda.ws.ui.Activator.start()
今天在接触OSGI时遇到了一个问题,弄了好久才搞定,特总结,以免大家出现类似情况. 友情提示:要是遇到莫名其妙的问题,最好的解决办法: 1.清空.metadata: 2.重新导工程: 3.一个Bund ...
- 使用 Equinox 开发 OSGi 应用程序
开始之前 关于本教程 OSGi 是目前动态模块系统的事实上的工业标准,虽然一开始只是作为嵌入式设备和家庭网关的框架来使用,但是实际上它适用于任何需要模块化.面向服务.面向组件的应用程序.而 Equin ...
- maven osgi_OSGi将Maven与Equinox结合使用
maven osgi 很长时间以来,我一直在努力理解OSGi的真正含义. 它已经存在很长时间了,但是没有多少人意识到这一点. 它被炒作是一种非常复杂的技术. 这是我为所有Java开发人员简化的尝试. ...
- OSGi将Maven与Equinox结合使用
很长时间以来,我一直在努力理解OSGi的真正含义. 它已经存在很长时间了,但是没有多少人意识到这一点. 人们已经大肆宣传它是一种非常复杂的技术. 这是我为所有Java开发人员简化的尝试. 简而言之, ...
- OSGI(面向Java的动态模型系统)和它的实现Equinox
equinox 报错 英 ['ikwnks; 'ekw-] 美 ['ikwnɑks] 全球发音 跟读 口语练习 n. 春分:秋分:昼夜平分点 OSGi(Open Service Gateway In ...
- 深入理解OSGI Equinox原理应用与最佳实践 知识整理篇
1.OSGI框架是什么? OSGI为实现Java模块化开发,实现热插拔功能化的框架实现.可以实现类似不重启系统也可以实现添加,删除其部分功能而不会导致系统崩溃的框架实现.一个功能相当一个模块,针对模块 ...
- Equinox OSGi
为什么80%的码农都做不了架构师?>>> 1. 背景信息 Equinox项目是Eclipse开源组织提供的OSGi框架的实现.Eclipse自3.0版本开始,其内核 ...
最新文章
- centos7添加运行终端快键键
- VTK:Rendering之DiffuseSpheres
- python学习笔记——类
- 第八十四节,css布局小技巧及font-awesome图标使用
- mysql高效sql语句_高效SQL优化 非常好用的SQL语句优化34条
- C语言algorithm主函数,C语言中主函数中相关有关问题?
- 交换机的基本配置实验报告_无线网络设计配置即实验报告
- Java高级编程之URL处理
- 利用MATLAB平台实现字的语音识别功能
- 关于期权的若干硬知识,知道这些就不那么担心了
- 典型的php系统由什么组成,完整的计算机系统由什么组成
- 【开源.NET】 分享一个前后端分离的轻量级内容管理框架
- MATLAB-多目标线性规划问题
- 何凯明最新一作MAE解读系列1
- 云控微信开发SDK使用教程--微信联系人标签新增,修改通知服务端
- QT Libvlc视频画面上覆盖透明控件
- python使用OpenCV批量裁剪图片
- 让你秒读懂阿里云数据库架构与选型
- 自带RGB灯效,配备显卡专属风道,风行者DF700 Flux上手
- 全连接网络实现Fashion数据集学习/预测
热门文章
- 电源架构--集中式电源架构/分布式电源架构
- excel phonetic函数连接数字不显示问题
- 华为比苹果更需要 AR 眼镜
- 分销商城小程序开发及解决方案
- ADSP-21489的开发详解:VDSP+自己编程写代码开发(4-按键控制 LED 灯)(含源代码)
- 工作效率提升技巧二:帕累托法则
- 西安80转换成北京独立计算机,关于坐标转换及坐标系(大地坐标、平面坐标、投影、北京54、西安80、WGS84)的一些理解...
- Arduino Uno基础入门01(认识Arduino)
- V7无线控制器WLAN本地转发配置方法
- iOS 关于蓝牙耳机和录音录制视频的设置