1. 程式人生 > >osgi Quick Start

osgi Quick Start

今天有空看了下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:[email protected] bnd-resolver:resolve package

但在執行時報錯:

[email protected]找不到,所以我就刪除了

成功後,app資料夾下的app.bndrun檔案裡回增加內容

原內容

執行使命後的內容:

五、執行

先打包:執行 mvn package

執行成功後再執行:java -jar app/target/app.jar

成功啟動後,在瀏覽器輸入http://localhost:8080/rest/upper/holle,頁面回顯示HELLO。

執行命令時因為老是要訪問國外的網站,所以經常會失敗。我也就成功了一次 @[email protected]