Невозможно вызвать остальной веб-сервис

Я просто пробую пример с сервисом отдыха. Мой класс обслуживания отдыха:

@Path("oauth")
public class OauthClass {

    private static Map<String, OauthBean> oAuthBeanMap = new HashMap<String, OauthBean>();

    static {

        OauthBean oAuthBean = new OauthBean();
        oAuthBean.setAccess_token(String.valueOf(Math.random()));
        oAuthBean.setToken_type("bearer");
        oAuthBean.setRefresh_token(String.valueOf(Math.random()));
        oAuthBean.setExpires_in("44517");
        oAuthBeanMap.put(oAuthBean.getToken_type(), oAuthBean);
    }

    @GET
    @Path("/token?client_id={clntID}")
    @Produces("application/json")
    public OauthBean getOAuthJSON(@PathParam("clntID") String clientID) {

        System.out.println(clientID + " Secret ");
        System.out.println("oAuthBeanMap.get(\"bearer\") :P " + oAuthBeanMap.get("bearer"));
        return oAuthBeanMap.get("bearer");
    }

}

Теперь, когда я пытаюсь вызвать этот URL:

http://localhost:7070/RESTfulWS/rest/oauth/token?client_id=clnt001

Я получаю ошибку 405. Метод не разрешен. Ниже приведен мой web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5">

 <display-name>RESTfulWS</display-name> 
<servlet> 
<servlet-name>Jersey REST Service</servlet-name> 
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
<init-param> 
<param-name>com.sun.jersey.config.property.packages</param-name> 
<param-value>com.eviac.blog.restws</param-value> 
</init-param> 
<load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
<servlet-name>Jersey REST Service</servlet-name> 
<url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 
</web-app>

Я использую майку 1.18. Что я делаю неправильно? С нетерпением жду ваших решений.

1 ответ

Читая ваш код, я думаю, что вы должны написать @Path("/token") вместо @Path("/token?client_id={clntID}"),

Кроме того, как вы сами отметили, вы должны использовать QueryParam вместо PathParam

Другие вопросы по тегам