今天有空看了下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. 通过P3P头实现跨域设置cookie

    PHP的setcookie函数可以设置域,但是只能在当前域内,如果出现多域可由如下办法处理:实现原理:www.b.com/set_cookie.php   在b域名下设置a域名的cookie < ...

  2. Java读取txt文件和写入txt文件

    package com.nickwong.code; import java.io.*; /** * Created by Nickwong on 31/07/2018. * 根据1-8楼的建议,优化 ...

  3. JVM中的垃圾回收器及垃圾收集算法描述

    首先需要了解下JVM(Java虚拟机)中的内存分配情况: 收集器的介绍: Serial收集器:是最原始的收集器,是单线程的,实现简单,但是在后台收集垃圾的时候,其他的工作线程都会停止,直到垃圾收集线程 ...

  4. Android 音视频深入 二十 FFmpeg视频压缩(附源码下载)

    项目源码https://github.com/979451341/FFmpegCompress 这个视频压缩是通过类似在mac终端上输入FFmpeg命令来完成,意思是我们需要在Android上达到能够 ...

  5. python之路-----MySql操作

    一.概述 1.什么是数据库 数据库就是按照数据结构来组织.存储和管理数据的仓库.如我们创建的文件夹,就是一个数据库. 2.什么是mysql,oracle,access,sqlit等? 他们都是一款软件 ...

  6. Mybatis逆向工程自动生成代码(Ubuntu18.04-idea环境)

    最近在学习taotao商城项目,有一节是关于mybatis逆向工程的,参考了这个博文,https://blog.csdn.net/yerenyuan_pku/article/details/71909 ...

  7. MySQL数据库--思维导图

    MySQL数据库--思维导图

  8. Judy Beta 阶段整体计划

    Judy Beta 总体规划 经过Alpha阶段的人员变动,Judy组成员如下:Manli Shu, Yuechen Wang, Zhiqi Lin, Yu Xing. 前Alpha阶段PM离职. 人 ...

  9. CSS3动画与JS动画的优缺点?

    JS动画: 缺点:1.JS在浏览器的主线程中运行,而主线程还有其他的js脚本,样式布局,绘制任务等,对其干扰可能导致线程出现阻塞,从而造成丢帧的情况. 2.JS动画代码复杂度高于CSS3动画. 优点: ...

  10. MyBatis工具类

    package cn.word.util; import java.io.IOException;import java.io.InputStream;import java.util.Enumera ...