Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
找不到Java类型的消息正文编写器mime类型application/x-www-form-urlencoded_Java_Rest_Client_Jersey Client - Fatal编程技术网

找不到Java类型的消息正文编写器mime类型application/x-www-form-urlencoded

找不到Java类型的消息正文编写器mime类型application/x-www-form-urlencoded,java,rest,client,jersey-client,Java,Rest,Client,Jersey Client,我知道以前有人问过这个问题,但没有一个答案适合我的情况。所以我必须寻求帮助。 我是新泽西州的,我应该创建一个rest客户端,它连接到一个服务并从中获取令牌。 代码如下: public String getToken() { String urlToken = "http://example.com"; Client client = Client.create(); Map<String, String> params = new H

我知道以前有人问过这个问题,但没有一个答案适合我的情况。所以我必须寻求帮助。 我是新泽西州的,我应该创建一个rest客户端,它连接到一个服务并从中获取令牌。 代码如下:

 public String getToken() {
        String urlToken = "http://example.com";
        Client client = Client.create();
        Map<String, String> params = new HashMap<String, String>();
        params.put("username","username" );
        GenericEntity<Map<String, String>> entity = new GenericEntity<Map<String, String>>(params){};
        client.addFilter(new LoggingFilter());
        WebResource webResource = client.resource(UriBuilder.fromUri(urlToken).build());
        String response = webResource
                .type("application/x-www-form-urlencoded")
                .post(String.class,entity);


        return response;
    }
HTTP Status 500 - com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class java.util.HashMap, and MIME media type, application/x-www-form-urlencoded, was not found


com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class java.util.HashMap, and MIME media type, application/x-www-form-urlencoded, was not found
    com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:288)
    com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:217)
    com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)
    com.sun.jersey.api.client.filter.LoggingFilter.handle(LoggingFilter.java:217)
    com.sun.jersey.api.client.Client.handle(Client.java:652)
    com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
    com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
    com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570)
    com.sgss.nove.service.tableau.impl.TableauManager.getToken(TableauManager.java:27)
    com.sgss.nove.server.TableauServlet.doGet(TableauServlet.java:52)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    com.sgss.nove.UserSessionControlFilter.doFilter(UserSessionControlFilter.java:130)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
    com.sgss.nove.GWTCacheControlFilter.doFilter(GWTCacheControlFilter.java:56)
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
对于参数,您需要使用而不是
HashMap
。他们这样做的原因是表单参数键可以用不同的值重复多次。例如
a=1&a=2&a=3
。此外,此处不需要
GenericEntity

MultivaluedMap params = new MultivaluedMapImpl();
params.add("username", "username");

String response = webResource
                .type("application/x-www-form-urlencoded")
                .post(String.class, params);