Search code examples
javatomcatjerseyjax-ws

Jersey returns HTTP Status 405 - Method Not Allowed


I have a very simple endpoint using Jersey. My URL is static, it doesn't require any request parameters. It looks like this:

@GET
@Path("/mydata")
@Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)  
public String getData()  {
  return "{'name': 'value'}";
}

However, whenever I request this URL, I always receive a HTTP Status code of 405 - Method Not Allowed.

The weird thing is, that if I change the @Path annotation and define a path variable e.g. @Path("/chart/{blah}") it works fine.

Does anyone have an idea why I have to define a path variable to get this to work? I don't need a path variable and it seems silly to add one just to get a 200 response.


Solution

  • Thanks for the suggestions. It ended up being me stupidly entering an incorrect url-pattern for my jersey SpringServlet. It was / instead of /*

    <servlet>
       <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
    </servlet>
    
    <url-pattern>/*</url-pattern>
    
    <servlet-mapping>
       <servlet-name>Chart Service</servlet-name>
       <url-pattern>/*</url-pattern>
    </servlet-mapping>