2013-03-29 6 views
0

Завершите newb для Java и OSGI, так голый со мной. Я пытаюсь создать класс Java, который настраивается через консоль OSGi. Я слышал, вы можете сделать это через аннотации SCR, но не совсем уверен, как это сделать. У меня есть основная часть его, но я не знаю, что получить и опубликовать, и как ссылаться на него в JSP. Вот что я получил до сих пор. Любая помощь приветствуется.Настраиваемый Java-сервлет из OSGI

import org.apache.felix.scr.annotations.Properties; 
import org.apache.felix.scr.annotations.Property; 
import org.apache.felix.scr.annotations.sling.SlingServlet; 
import org.apache.sling.api.SlingHttpServletRequest; 
import org.apache.sling.api.SlingHttpServletResponse; 
import org.apache.sling.api.servlets.SlingAllMethodsServlet; 

import javax.servlet.ServletException; 
import java.io.IOException; 

@SlingServlet(
paths={"/somepath/"} 
) 
@Properties({ 
@Property(name="email.add", value="Email Info",propertyPrivate=false), 
@Property(name="user.info",value="User Info", propertyPrivate=false) 
}) 
public class WelcomeMessage extends SlingAllMethodsServlet 
{ 
@Override 
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse         response) throws ServletException, IOException 
{ 
    //Do something here 
} 

@Override 
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException 
{ 
    //Do something here 
} 
} 
+0

Это специальная стропа и нуждается в пучках ss osgi для работы. Вам также нужно обработать аннотации через плагин scr maven. Если вам не нужна стропа, посмотрите на мост сервлета Apache Http, чтобы вы пошли. –

+0

Спасибо, что ответили. Извините, но я в замешательстве. Я не уверен, что вы имеете в виду, обрабатывая аннотации через плагин maven, есть ли у вас простой пример? Я установил maven, но не знаю, что вы понимаете, обрабатывая аннотации. Извините, полный, и я действительно имею в виду полный newb. –

ответ

3

Для обработки таких аннотаций вам необходимо настроить плагин Maven SCR (от Apache Felix). Этот плагин будет обрабатывать аннотации и создавать метаданные внутри полученного JAR-файла.

Аннотации @SlingServlet - это Apache Sling специфические и нуждаются в пакетах Apache Sling для регистрации сервлета. Аннотации @SlingServlet также обрабатываются плагином Maven SCR.

Ниже приведен пример настройки плагина SCR в Maven.

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.felix</groupId> 
     <artifactId>maven-scr-plugin</artifactId> 
     <version>1.9.0</version> 
     <executions> 
     <execution> 
      <id>generate-scr-scrdescriptor</id> 
      <goals> 
      <goal>scr</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

Кроме того, чтобы быть в состоянии создать OSGi расслоения (Jar с метаданными OSGi), вам нужно настроить Maven Bundle Plugin.

Информацию о плагине Maven SCR можно найти здесь: http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin.html.

Документация плагина Maven Bundle приведена здесь: http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html.

Но, лучший способ понять это, взглянув на примеры в пучках Sling: https://github.com/apache/sling/tree/trunk/bundles.

+0

спасибо @stenrs, это очень полезно. определенно указал мне в правильном направлении. еще раз спасибо! –

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