今天有空看了下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。

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

最新文章

  1. spring 源码下载地址
  2. 【百度SEO优化】如何让蜘蛛爬行你的网站
  3. 【OpenGL】查看显卡对OpenGL的支持程度
  4. 来到这里,我放弃了多少- UI基础-疯狂猜图,我们都疯狂了-
  5. 初识vi编辑器
  6. 转:Java HashMap实现详解
  7. cluster模块实现多进程-让我的代理服务速度飞起来了
  8. Java-if 嵌套结构
  9. Python之路:爬虫之urllib库的基本使用和高级使用
  10. Nodejs核心模块
  11. Tinyhttpd阅读笔记
  12. javascript:将URL的参数列表解析为一个对象
  13. mac电脑上不能用移动硬盘的原因和方法
  14. day3 python简介 IDE选择
  15. JaveWeb 公司项目(3)----- 通过Thrift端口获取数据库数据
  16. hash的安全性
  17. CRM 2013发邮件的插件报错Cannot open Sql Encryption Symmetric Key because Symmetric Key password does not exist in Config DB
  18. SSH登录警告(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)
  19. Fiddler下Firefox提示“您的连接并不安全”的解决办法
  20. python学习之路 三:字符编码

热门文章

  1. C# 3.0 / C# 3.5 对象集合初始化器、匿名类
  2. C#异步(下)
  3. kafka 常用参数
  4. 小程序for循环绑定每组数据的id,并通过id获取里面某个数组的值的方法
  5. PHP语言学习之php做图片上传功能
  6. centes7安装wdcp
  7. 文件属性和ls -lhi
  8. [线段树]HDU-1754板子题入门ver
  9. Saku实力挖坑记!!(十八)
  10. JavaScript 进阶