无法调用其他Web服务

时间:2015-01-19 05:36:35

标签: rest jersey url-pattern uritemplate

我只是尝试一个示例休息服务示例。我的休息服务课是:

@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");
    }

}

现在,当我想要调用此网址时:

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 个答案:

答案 0 :(得分:1)

阅读您的代码,我认为您应该写@Path("/token")而不是@Path("/token?client_id={clntID}")

此外,正如您自己所说,您应该使用QueryParam代替PathParam