今天有空看了下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. @validated各种坑

    1.@validate不起作用 经过各种测试,在@validate后加了个modelattribute("form")就不验证了,坑.. 2.错误信息的properties配置文件 ...

  2. 2018的flag

    1.leetcode刷到medium的题目不吃力 2.坚持记录自己的独特感悟 3.找到好的工作或者实习,二战计划再看吧 4.好好完成毕设,为大学生活画上完满句号

  3. react .net core 发布 Access-Control-Allow-Origin Cors

    本案例用IIS部署 1. 在react上先publish: npm run build 生成了build文件,在此文件里添加web.config,注意httpProtocol是用来跨域的. <? ...

  4. 【jQuery、Express.js】AJAX提交Form

    HTML/CSS代码 构建onclick事件 <div class = "row"> <div class = "col-md-10"> ...

  5. 通信技术以及5G和AI保障电网安全与网络安全

    摘 要:电网安全是电力的基础,随着智能电网的快速发展,越来越多的ICT信息通信技术被应用到电力网络.本文分析了历史上一些重大电网安全与网络安全事故,介绍了电网安全与网络安全.通信技术与电网安全的关系以 ...

  6. Nginx 作用

    django 请求的生命周期 Nginx 的作用: 浏览器 --- nginx(反向代理器)-- uwsgi --- django项目nginx : 负载均衡, 将任务分发给不同的uwsgi 动静分离 ...

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

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

  8. js判断一个字符串是否是回文字符串

    回文字符串:即字符串从前往后读和从后往前读字符顺序是一致的. 如:字符串abccba,从前往后读是a-b-c-c-b-a:从后往前读也是a-b-c-c-b-a 方法一 function palindR ...

  9. JDBCUtils——DBCP

    需要导入的包: mysql-connector-java-5.1.37-bin.jar commons-dbcp-1.4.jar commons-pool-1.6.jar 需要添加/配置的配置文件: ...

  10. AStar算法()

    把网上的AStar算法的论述自己实现了一遍,一开始只是最基础的实现.当然,现在AStar算法已经演变出了各种优化的版本,这篇也会基于各种优化不断的更新. 如果对算法不熟悉可以看下Stanford的这篇 ...