Creating an Application with Virgo 使用的Example 是greenpage, greenpage有簡單的WebApp , 建議可以抓下來follow 官方文件做一次練習,可以更容易了解。GreenPage 可以在這邊下載:
greenpages-2.3.0.RELEASE.zip
本篇文章主要是使用Eclipse Create Spring DM Bundle Project, 下列相關的文件建議可以先看一下, 必須先了解一下Maven 怎麼使用,還有一些Spring Framework相關的知識。
Maven Getting Started Guide : Link
Spring Dynamic Modules Reference Guide : Link
Spring Framework Reference Documentation 3.x : Link
建立一個Maven Project ,
Next
在Catelog 選All , 然後filter 輸入osgi , 選擇spring-osgi-bundle-archtype ,
輸入GroupID, Artifact ID, 還有Version 跟default pacakge, 然後按下finish
建立出來的Project 大概長這樣,可以先將ProjectRoot的META-INF folder砍掉,我們不會用到, log4j.porperties也砍掉。
然後在project 上按右鍵,選擇Run as > Maven build... ,
在Goals 下輸入 org.apache.felix:maven-bundle-plugin:manifest , 利用apache felix 的maven bundle plugin 去建立MANIFEST.mf檔,
然後f5重整project,在target/classes/META-INF/下能找到建出來的MANIFEST.MF檔
把它移到src/main/resource/META-INF/下
然後run maven clear
打開MANIFEST.mf檔,copy所有內容,然後再打開project root下的template.mf檔, 把MANIFEST.mf檔的內容copy到template.mf裡, 如下圖
然後在Project 上點滑鼠右鍵, Spring Tools > add OSGi Bundle Project Nature , 新增Spring OSGi Nature,
建出來的Maven Project 習慣上我都會把POM.xml 做些修改, 可依個人需求修改,
在com.my 下建立一個class, 叫Activator,
package com.my; public class Activator { public void start(){ System.out.println("Hello OSGI"); } public void stop(){ System.out.println("good bye OSGi"); } }
然後設定bundle-context.xml ,定義bean , 然後設定init & destory 的method
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- regular spring configuration file defining the beans for this bundle. The configuration of OSGi definitions is kept in a separate configuration file so that this file can easily be used for integration testing outside of an OSGi environment --> <bean id="activator" class="com.my.Activator" init-method="start" destroy-method="stop"></bean> </beans>
然後打開Package Explorer , 滑鼠左鍵把整個project 拖到Virg Web Server上,
然後Server Cnosole 能看到install bundle的訊息
telnet localhost 2401 , 輸入 ss, 能看到bundle 已安裝
然後可以到C:\Eclipse-Virgo-WebServer\serviceability\logs\log.log 查看log檔,
(記確認conf下的org.eclipse.virgo.medic.properties 裡面log.wrapSysOut=true )
在OSGI console 輸入stop 73, 把bundle stop ,
查看log,可以看到good bye osgi 的message
沒有留言:
張貼留言