eclipse-ee4j / eclipse-ee4j/jersey

Jersey ignores @ApplicationPath in embedded jetty

Open
#3,222 8 comments 0 reactions 0 assignees View on GitHub
Component: containers Component: core Priority: Major Type: Bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.