eclipse-ee4j / eclipse-ee4j/jersey
Jersey ignores @ApplicationPath in embedded jetty
- Dominant language
- Java
- Stars
- 730
- Forks
- 382
- PR merge metrics
- No merged PRs in 30d
Description
In embedded jetty, jersey container ignores @ApplicationPath annotation. Here is the code used:
```
package me.aymen.rest.server;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.servlet.ServletContainer;
public class EmbeddedJetty
{
public static void main(String[] args)
{
Server server = new Server(9034);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
server.setHandler(context);
context.setContextPath("/*");
ServletContainer jersey = new ServletContainer(ResourceConfig.forApplicationClass(MyApplication.class));
ServletHolder holder = new ServletHolder(jersey);
try
{
server.start();
}
catch (Exception ex)
{
Logger.getLogger(EmbeddedJetty.class.getName()).log(Level.SEVERE, null, ex);
}
context.addServlet(holder, "/*");
}
}
```
As for the Application:
```
package me.aymen.rest.server;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/test")
public class MyApplication extends Application
{
Set> clss;
public MyApplication()
{
clss = new HashSet<>();
clss.add(MyService.class);
}
@Override
public Set> getClasses()
{
return clss;
}
}
```
And the service resource:
```
package me.aymen.rest.server;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/serv")
public class MyService {
@GET
@Produces(MediaType.TEXT_HTML)
public String available() {
return "My Service
Hello, World!
";}
}
```
#### Environment
Java SE 8, jetty-sever 9.3.2,
#### Affected Versions
[2.21]
Contributor guide
Assessment
This issue has not been assessed yet.