2013-10-16 56 views
0

我是OSGi的新手。我的要求是有一個Android應用程序與OSGi框架上的服務器交談。Android應用程序使用OSGi與服務器交談

我正在看Apache FLEX作爲容器。從我所瞭解的情況來看,Felix上會安裝捆綁軟件,它們可以從程序本身啓動和停止。

我設法在android端創建捆綁包,並獲得它。 但是我無法得到服務器端OSGi的清晰圖片。 Android應用程序使用Http請求和響應與服務器通話。 如果我在服務器上只有Apache Felix,我能否處理Http請求? 我是否也需要Tomcat?

我看到這個鏈接 -

Trouble understanding the whole OSGi web eco system

在這裏,他們談論的Web容器是如何的Tomcat /碼頭。這告訴我我需要服務器上的Tomcat和Felix。我對嗎? 我也讀過關於Felix嵌入Felix的內容。但我無法連接點。

請指引我在正確的方向..

+0

http://stackoverflow.com/questions/2567830/trouble-understanding-the-whole-osgi-web-eco-system可能的重複 – GreyBeardedGeek

回答

0

OSGi的首選機型是剛剛註冊到服務註冊一個Servlet服務。這個servlet應該被安裝在該框架上的Http服務器接收。這個模型將在不久的將來成爲標準模型,但已經被Apache Felix支持。這是你將如何在BND使這個(工具):

bnd.bnd 
    -runfw: org.apache.felix.framework;version='[4,5)' 
    -runbundles: \ 
    org.apache.felix.configadmin;   version=1.6.0, \ 
    org.apache.felix.log;     version=1.0.1, \ 
    org.apache.felix.scr;     version=1.6.0, \ 
    org.apache.felix.http.jetty;   version=2.2.0, \ 
    org.apache.felix.http.whiteboard;  version=2.2.0 

如果正在運行,你可以使用聲明式服務是這樣寫一個servlet:

@Component(provide=Servlet.class,properties="alias=/hello") // makes it available on /hello 
    public class MyAndroidServer extends HttpServlet { 
    public void doGet(HttpServletRequest rq, HttpSerletResponse rsp) throws IOException { 
     rsp.getWriter().println("Hello World"); 
    } 
    } 

如果你開始bndtools它應該是很容易得到這個工作。據我所知,這是在OSGi環境中使用servlet的最簡單方法。

相關問題