执行rest客户端时抛出ClientHandlerException

时间:2014-05-26 08:12:06

标签: java android web-services jersey

代码:

 import java.io.IOException;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.UriBuilder;
 import org.apache.http.client.ClientProtocolException;
 import com.sun.jersey.api.client.Client;
 import com.sun.jersey.api.client.ClientResponse;
 import com.sun.jersey.api.client.WebResource;
 import com.sun.jersey.api.client.config.ClientConfig;
 import com.sun.jersey.api.client.config.DefaultClientConfig;
 import com.sun.jersey.core.util.MultivaluedMapImpl;

 public class PostClient {

 public static void main(String[] args) throws ClientProtocolException, IOException {

    String devEmail = "test123@gmail.com";
    String apiKey = "a975d70e-bebc-4270-8160-d71fa5241bd2"; 
    String pkgName = "com.test";
    String appId = "com.testtestApp";
    ClientConfig config = new DefaultClientConfig();
    Client client = Client.create(config);
    WebResource webResource =  client.resource(UriBuilder.fromUri("http://localhost:4444/webbService/apiCheckTest").build());
    MultivaluedMap formData = new MultivaluedMapImpl();
    formData.add("devEmail", devEmail);
    formData.add("apiKey", apiKey);
    formData.add("pkgName", pkgName);
    formData.add("appId", appId);

    ClientResponse response = webResource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse.class, formData);
    System.out.println("Response " + response.getEntity(String.class));
   }
}

服务器类:

import java.io.IOException;
import com.sun.jersey.api.container.httpserver.HttpServerFactory;
import com.sun.net.httpserver.HttpServer;

public class RESTserverStartUp {

    static final String BASE_URI = "http://localhost:4444/";



    public static void main(String[] args) {
        try {
            HttpServer server = HttpServerFactory.create(BASE_URI);
            server.start();
            System.out.println("Press Enter to stop the server. ");
            System.in.read();
            server.stop(0);
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
   }
}

如果我在Netbeans中执行,那么相同的代码正在运行。但是,如果我尝试在ADT中运行,那就是抛出错误。

记录跟踪:

05-26 07:18:47.442: W/System.err(1934): com.sun.jersey.api.client.ClientHandlerException: java.lang.NullPointerException
05-26 07:18:47.442: W/System.err(1934):     at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)
05-26 07:18:47.442: W/System.err(1934):     at com.sun.jersey.api.client.Client.handle(Client.java:648)
05-26 07:18:47.452: W/System.err(1934):     at com.sun.jersey.api.client.WebResource.handle(WebResource.java:670)
05-26 07:18:47.452: W/System.err(1934):     at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
05-26 07:18:47.452: W/System.err(1934):     at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:563)

帮我调试一下。我已经在构建路径中包含在外部jar中。 请帮我调试这个问题。 提前谢谢。

0 个答案:

没有答案