OSGI中的可配置Javaservlet
我试图创建一个可通过OSGi控制台配置的Java类。我听说您可以通过SCR注释来实现这一点,但不完全确定如何实现。我已经得到了大部分内容,但不确定要获取和发布什么,以及如何在JSP中引用它。以下是我到目前为止的情况:OSGI中的可配置Javaservlet,java,sling,osgi-bundle,Java,Sling,Osgi Bundle,我试图创建一个可通过OSGi控制台配置的Java类。我听说您可以通过SCR注释来实现这一点,但不完全确定如何实现。我已经得到了大部分内容,但不确定要获取和发布什么,以及如何在JSP中引用它。以下是我到目前为止的情况: import org.apache.felix.scr.annotations.Properties; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations
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插件(来自ApacheFelix)。该插件将处理注释并在生成的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>
org.apache.felix
.
Maven Bundle插件文档位于此处:
但是,了解这一点的最佳方法是查看此处吊索束中的示例: 为了能够处理这些注释,您需要设置Maven SCR插件(来自ApacheFelix)。该插件将处理注释并在生成的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>
org.apache.felix
.
Maven Bundle插件文档位于此处:
但是,了解这一点的最佳方法是查看此处吊索束中的示例: 这是特定于吊索的,需要吊索osgi捆绑包才能工作。您还需要通过scr maven插件处理注释。如果您不需要sling,请查看ApacheHTTPServlet网桥,让您继续。感谢您的回复。抱歉,我很困惑,我不确定你通过maven插件处理注释是什么意思你有一个简单的例子吗?我已经安装了maven,但不确定处理注释是什么意思。对不起,完整的,我真的是指完整的新手。这是特定于吊索的,需要吊索osgi捆绑包才能工作。您还需要通过scr maven插件处理注释。如果您不需要sling,请查看ApacheHTTPServlet网桥,让您继续。感谢您的回复。抱歉,我很困惑,我不确定你通过maven插件处理注释是什么意思你有一个简单的例子吗?我已经安装了maven,但不确定处理注释是什么意思。对不起,完全是新手。谢谢@sterns这很有帮助。肯定给我指明了正确的方向。再次感谢!谢谢@Sterns这很有帮助。肯定给我指明了正确的方向。再次感谢!