簡體   English   中英

OSGI的可配置Java Servlet

[英]Configurable Java Servlet from OSGI

我正在嘗試創建一個可通過OSGi控制台配置的Java類。 我聽說您可以通過SCR注釋執行此操作,但不完全確定該怎么做。 我已經掌握了大部分內容,但不確定要獲取和發布的內容以及如何在JSP中引用它。 這是我到目前為止的內容:

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
}
}

為了能夠處理此類注釋,您需要設置Maven SCR插件(來自Apache Felix)。 該插件將處理注釋並在生成的JAR文件中創建元數據。

@SlingServlet注釋特定於Apache Sling,將需要某些Apache Sling捆綁包才能注冊servlet。 @SlingServlet批注也由Maven SCR插件處理。

這是有關如何在Maven中配置SCR插件的示例。

<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捆綁包(帶有OSGi元數據的JAR),您將需要設置Maven捆綁包插件。

您可以在以下位置找到有關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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM