Marco Dinatsoli
Marco Dinatsoli

Reputation: 10570

what is that I'm missing to run jersey 2 web service?

I created a dynamic java project and added this dependency:

<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.containers/jersey-container-servlet-core -->
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet-core</artifactId>
            <version>2.23.1</version>
        </dependency>

Then i created the App class like this:

@ApplicationPath("/test")
public class App extends ResourceConfig {
    public App() {
        this.packages("com.test.ul");
    }
}

and in the same package as the App class is in, i created this:

@Path("restaurantAPI")
public class RestaurantAPI {

    @Path("/get")
    @GET
    public Response getRequest(@PathParam("id") String id) {
        return Response.ok(id).build();
    }

}

I run my server, and I call this URL:

http://localhost:8080/ULTestServer/test/restaurantAPI/get?id=3

but I get error 404

What Am I missing please ? (I always do that and it used to work)

Upvotes: 2

Views: 55

Answers (1)

Paul Samsotha
Paul Samsotha

Reputation: 208944

Change

jersey-container-servlet-core

to

jersey-container-servlet

The reason is that the latter has the required component1 that allows for discovering your application without web.xml, in replace for @ApplicationPath. This is part of the servlet 3 pluggability mechanism.

The first dependency is use for non servlet 3.0 containers, where the use would have to use a web.xml to register the Jersey servlet.


1 - Here is the implementation

Upvotes: 1

Related Questions