今天有空看了下osgi,根据官网的说明来快速搭建一个服务,把步骤记下来。

(官网地址:https://enroute.osgi.org/tutorial/020-tutorial_qs.html)

一、准备环境(略)

因为我是之前使用了eclipse,还跑通了官网下载的demo。所有环境就有了,如果以后需要,再补充,先mark下^_^

二、创建项目

使用maven来创建,命令行模式(先要安装maven并配置环境变量O)

使用命令来创建项目:在桌面打开命令行窗口,执行以下命令

mvn org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate -DarchetypeGroupId=org.osgi.enroute.archetype -DarchetypeArtifactId=project -DarchetypeVersion=7.0.0

执行成功后会显示输入项目的groupId,接着是artifactId,版本号,包名。

这个跟配置maven项目是一样的,版本号可以使得默认的,其他的可根据自己需要自定义,我这里跟官网一致。

输入完包名后回车,到最后一行是也回车(即Y::)。

回到桌面会看到生成了一个文件夹:quickstart,里面有两个文件夹和一个pom文件

三、修改文件

将impl文件夹下的路径为 \impl\src\main\java\org\osgi\enroute\examples\quickstart\rest\ComponentImpl.java的文件修改成Upper.java,

或者把ComponentImpl.java删除新建一个Upper.java文件。Upper.jave文件内容如下:

package org.osgi.enroute.examples.quickstart.rest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam; import org.osgi.service.component.annotations.Component;
import org.osgi.service.http.whiteboard.propertytypes.HttpWhiteboardResource;
import org.osgi.service.jaxrs.whiteboard.propertytypes.JaxrsResource; @Component(service=Upper.class)
@JaxrsResource
@HttpWhiteboardResource(pattern="/quickstart/*", prefix="static")
public class Upper { @Path("rest/upper/{param}")
@GET
public String toUpper(@PathParam("param") String param) {
return param.toUpperCase();
}
}

四、解析(Resolving)

切回命令行窗口 cd quickstart进入文件夹。

执行以下命令:

mvn -pl app -am  bnd-indexer:index bnd-resolver:resolve package

说明:官网的命令是

mvn -pl app -am  bnd-indexer:index bnd-indexer:index@test-index bnd-resolver:resolve package

但在执行时报错:

index@test-index找不到,所以我就删除了

成功后,app文件夹下的app.bndrun文件里回增加内容

原内容

执行使命后的内容:

五、执行

先打包:执行 mvn package

执行成功后再执行:java -jar app/target/app.jar

成功启动后,在浏览器输入http://localhost:8080/rest/upper/holle,页面回显示HELLO。

执行命令时因为老是要访问国外的网站,所以经常会失败。我也就成功了一次 @_@

osgi Quick Start的更多相关文章

  1. 基于Equinox构建OSGi项目

    几种OSGi框架 Several independently implemented OSGi frameworks exist today, including four that are avai ...

  2. Reloading Java Classes 301: Classloaders in Web Development — Tomcat, GlassFish, OSGi, Tapestry 5 and so on Translation

    The Original link : http://zeroturnaround.com/rebellabs/rjc301/ Copyright reserved by Rebel Inc In t ...

  3. Elipse plugin or Bundle & OSGI

    Develop and register service, lookup and use service! Android Design on service's publish-find-bind ...

  4. [算法]——快速排序(Quick Sort)

    顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...

  5. OSGi规范的C#实现开源

    这是大约在3-4年前完成的一个C#实现的OSGi框架,实现的过程参照了OSGi规范与与一些实现思路(感谢当时的那些资料与项目),此框架虽然仅在几个小型项目有过实际的应用,但OSGi的规范实现还是相对比 ...

  6. 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法

    在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. ...

  7. OSGi 基本原理

    定义 OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统. 这个框架实现了一个优雅.完整和动态地组价模型.应用程序(称为bundle)无序重新引 ...

  8. 重新诠释的OSGi规范

    上周五部门开会讨论新一代产品(基于.net Winform)的设计规范,从设计规范慢慢讨论到体系结构等架构存在的问题,诸如菜单.工具条.状态条.界面布局等不能实现配置化和自动化,子系统之间拥有强依赖, ...

  9. Quick Cocos (2.2.5plus)CoinFlip解析(MenuScene display AdBar二次封装)

    转载自:http://cn.cocos2d-x.org/tutorial/show?id=1621 从Samples中找到CoinFlip文件夹,复制其中的 res 和 script 文件夹覆盖新建工 ...

随机推荐

  1. 找出点的密集区域,javascript实现,html5 canvas效果图

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  2. promise用法十道题

    JS是单线程语言,多数的网站不需要大量计算,程序耗时主要是在磁盘I/O和网络I/O上 ,虽然固态硬盘SSD读取很快,但是和CPU比起来却不在一个数量级上,而且网络上的一个数据包来回时间更慢,所以一些C ...

  3. Laravel 利用中间件控制权限。

    1.把所有需要控制的url写到config/admin.php里. 2.http/kernel.php文件里加上中间件. 3.http/Middleware/Permission.php 4.视图层

  4. [LeetCode] 83. Remove Duplicates from Sorted List ☆(从有序链表中删除重复项)

    描述 Given a sorted linked list, delete all duplicates such that each element appear only once. Exampl ...

  5. python -- 小数据池 is和 == 再谈编码

    1.小数据池 python程序是由代码块构成的,一个代码块的文本作为python程序的执行单元. 代码块:一个模块,一个函数,一个类,甚至一个command命令都是一个代码块,一个文件也是一个代码块, ...

  6. 意想不到的javascript

    最近总遇到些叫人想不明白的javascript,先列出来玩玩: 1. var name=1; switch(name){ case 1:console.log(name); break; defaul ...

  7. week6

    面向对象编程 class类(新式类:class xx(obj):,经典类 class xx:) 构造函数 __init__(self,ret1,ret2...) 在实例化时做一些类的初始化工作 析构函 ...

  8. DOM艺术基础练习

    每个月对于学习的JAVASCRIPT进行总结,加油 主要应用知识点   :

  9. h265文件分析(纯c解析代码)

    参考链接: 1. HEVC码流解析 https://blog.csdn.net/CrystalShaw/article/details/80624804   2. HEVC编码结构:序列参数集SPS. ...

  10. python 语法

    Python基础语法举例# 1 缩进和空格表示代码块# 2()连接多行print("()连接多行")str = ("uhfjfjkfj"       " ...