Я следую примеру 1 из документов ниже https://sling.apache.org/documentation/the-sling-engine/servlets.html#caveats-when-binding-servlets-by-path
В родительском pom.xml у меня есть следующее
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<!-- <version>3.5.0</version> -->
<version>4.0.0</version>
</plugin>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.servlets.annotations</artifactId>
<version>1.1.0</version>
</dependency>
, а плагин служб настроен
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
<configuration>
<instructions>
<Bundle-Activator>edu.umich.lsa.services.osgi.Activator</Bundle-Activator>
<Embed-Dependency>*;scope=compile|runtime,</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Import-Package>!sun.misc;resolution:=optional,
!com.sun.jdmk.comm;resolution:=optional,*</Import-Package>
<Sling-Test-Regexp>.*Test</Sling-Test-Regexp>
<Bundle-SymbolicName>edu.umich.lsa.michigan-lsa-services</Bundle-SymbolicName>
<Sling-Model-Packages>edu.umich.lsa.services.osgi.entities </Sling-Model-Packages>
</instructions>
</configuration>
</plugin>
Мой сервлет выглядит так
@SlingServletPaths("/bin/lsa/sitemap")
public class LsaSitemapServlet extends SlingSafeMethodsServlet {
private static final String NS = "http://www.sitemaps.org/schemas/sitemap/0.9";
private static final String PROP_CHARACTER_ENCODING_PROPERTY = "UTF-8";
private static final String CONTENT_TYPE = "text/xml; charset=UTF-8";
}
Maven говорит, что сборка прошла успешно, но сервлет не зарегистрирован. В консоли Maven напечатано следующее:
[INFO] Невозможно определить, применяется ли мета-аннотация org.osgi.service.component.annotations.ComponentPropertyType к типу edu.umich.lsa. services.osgi.servlets.LsaSitemapServlet предоставляет аннотации к пакетам, поскольку их нет в пути сборки проекта. Если эта аннотация предоставляет аннотации к пакетам, то она должна присутствовать в пути сборки, чтобы ее можно было обработать
Глядя на журнал изменений Я не понимаю, почему он работает сmaven-bundle-plugin на 3.5.0 и сервлет, определенный с использованием метод 2 (т.е. только с помощью аннотации osgi @Component, а не новой @SlingServletPaths)