Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OSGI中的可配置Javaservlet_Java_Sling_Osgi Bundle - Fatal编程技术网

OSGI中的可配置Javaservlet

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

我试图创建一个可通过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插件(来自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这很有帮助。肯定给我指明了正确的方向。再次感谢!