mvn archetype:generate -DgroupId=com.example -DartifactId=servlet-api-bundle -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
<dependencies>
<!-- Servlet API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!-- OSGi Core -->
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>7.0.0</version>
</dependency>
</dependencies>
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "HelloServlet", urlPatterns = "/hello")
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
PrintWriter out = servletResponse.getWriter();
out.println("Hello, World!");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
Bundle-SymbolicName: servlet-api-bundle
Bundle-Version: 1.0.0
Export-Package: com.example.servlet
mvn clean package
install file:/path/to/servlet-api-bundle-1.0.0.jar
start <Bundle ID>