2013-02-08 5 views
0

Хотелось бы узнать, как запустить HTTP-сервер на платформе OSGi. В настоящее время я использую Equinox и нашел некоторую официальную информацию о вложении Jetty bundle, но ссылки на зависимости кажутся нарушенными, и в целом это плохо документировано. (http://www.eclipse.org/equinox/server/http_in_equinox.php)Как встроить веб-сервер в OSGi Framework?

спасибо.

ответ

1

Просто взгляните на Apache Felix Http service http://felix.apache.org/documentation/subprojects/apache-felix-http-service.html Так как это хорошо продуманные пакеты OSGi, они также работают в Equinox.

Я использую их модель доски, с этим комплектом вы просто регистрируете сервлет со служебным свойством. Если вы хотите все это проверить, предложите загрузить bndtools и создать среду выполнения с помощью webconsole и DS. Это все, что вы должны написать для сервлета Hello World:

package com.example; 

@Component(alias="/hello", provide=Servlet.class) 
public MyServlet extends HttpServlet { 
    public void doGet(HttpServletRequest req, HttpServletResponse rsp) { 
    rsp.setContentType("text/plain;charset=UTF-8"); 
    rsp.getOutputStream().write("Hello World".getBytes("UTF-8")); 
    } 
} 
0

Существует также Pax-Web, который дает вам массу возможностей. Посмотрите на http://team.ops4j.org/wiki/display/paxweb/Pax+Web. Он поддерживает std. Http-сервис, док-станция для сервлетов, фильтры, jsps. А также война (либо std, либо манифест osgi).

0

Вы можете использовать Virgo: он основан на равноденствии и интегрирует tomcat.

Что касается сервера Jetty, он наверняка встраивается в OSGi: Apache CXF project uses jetty для обслуживания запросов SOAP и запусков CXF в OSGi без каких-либо проблем.

0

Все, что вам нужно, это установить соответствующие пакеты в встроенную инфраструктуру OSGI. Существует пример кода: https://bitbucket.org/vbashur/diff/ Посмотрите на osgimain и osgiservice проекты

Смежные вопросы