2013-10-24 5 views
1

Я новичок в Restful web-сервисах. Я хочу получить доступ к Серверу через Джерси-клиент. Но я получаю ошибку 204. То, что я пытаюсь сделать, это передать значения id через клиентский конец и получить соответствующее имя. Я сделал это через браузер, и он работает отлично. Кто-нибудь может найти ошибку здесь?Ошибка 204 при отправке данных в базу данных

Это конец клиента.

public Link(String param, String val) throws ClientProtocolException, IOException { 
    ClientConfig config = new DefaultClientConfig(); 
    Client client = Client.create(config); 
    WebResource service = client.resource(getBaseURI()); 

    //System.out.println(service.path("main").path("db").accept(MediaType.TEXT_PLAIN).get(String.class)); 


    MultivaluedMap pathParams = new MultivaluedMapImpl(); 
    pathParams.add(param, val); 
    System.out.println(param+":" + val); 

    ClientResponse response = service.path("main").path("ds").type(MediaType.APPLICATION_FORM_URLENCODED).post(ClientResponse.class, pathParams); 
    System.out.println(response.toString()); 
    System.out.println(response.getEntity(String.class)); 



} 

private static URI getBaseURI() { 
    return UriBuilder.fromUri("http://localhost:8080/WebApp/resources/").build(); 
} 

Это конечный сервер

@Path("/main") 
public class WebService { 
@Path("/ds") 
@POST 
@Produces(MediaType.TEXT_PLAIN) 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public String returnData(@PathParam("id") String id_no) throws Exception{ 
    PreparedStatement query = null; 
    String myString = null; 
    java.sql.Connection conn = null; 

    System.out.println(id_no); 

    try{ 
     conn= Connection.createCon(); 
     query = conn.prepareStatement("select name as ds_name from student where id='" + id_no + "'"); 
     ResultSet firstweb_rs = query.executeQuery(); 

     while(firstweb_rs.next()){ 
      myString = firstweb_rs.getString("ds_name"); 
     } 
     query.close(); 


    } catch(Exception e){ 
     e.printStackTrace(); 
    } 
    finally{ 
     if(conn!=null) conn.close(); 

    } 
    return myString; 
} 

ответ

1

204 не код ошибки. Все коды серии 200 означают успех. См. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html для кодов состояния и их значений.

204 означает «Без содержания». Сервер выполнил запрос, но ему не нужно возвращать объект-тело.

Если вы получаете 204 и есть ошибка на стороне сервера, которая бросает трассировки стека, то она должна возвращать 500 или аналогичные. Если это так, вам нужно будет опубликовать их, чтобы получить дополнительную помощь.

Смежные вопросы