Получение вывода JSON от Restful Java ClientJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Получение вывода JSON от Restful Java Client

Сообщение Anonymous »

Я разрабатываю веб -сервис с помощью REST (Джерси 1.8). В настоящее время я использую XML для связи между клиентом Java и сервером. У меня есть куча автоматического сгенерированного кода из Netbeans, и я понятия не имею, что делать и как. При тестировании службы показывают данные JSON. Что я не могу сделать, так это иметь дело с этим в моем основном методе < /code>.
< /p>

Это учебник. />[*]http://www.oracle.com/webfolder/technet ... rvices.htm
[*]http://www.oracle.com/webfolder/technet ... spart2.htm
http://www.oracle.com/webfolder/technet ... art3public class SOATestClient {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
PersonJerseyClient client = new PersonJerseyClient();
ClientResponse response = client.findAll_XML(ClientResponse.class);

GenericType genericType = new GenericType() {
};
// Returns an ArrayList of Players from the web service
List data = new ArrayList();
data = (response.getEntity(genericType));
System.out.println("Retreiving and Displaying Players Details");
for (Person person : data) {
System.out.println("FirstName: " + person.getName());
System.out.println("ID : " + person.getId());
System.out.println(" Age : " + person.getAge());
}
client.close();
}
}
< /code>

PersonJerseyCilent < /p>

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jerseyclients;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;

/**
* Jersey REST client generated for REST resource:PersonFacadeREST
* [entity.person]

* USAGE:
*
* PersonJerseyClient client = new PersonJerseyClient();
* Object response = client.XXX(...);
* // do whatever with response
* client.close();
*
*
* @author rj45
*/
public class PersonJerseyClient {
private WebResource webResource;
private Client client;
private static final String BASE_URI = "http://localhost:8080/SOATestService/resources";

public PersonJerseyClient() {
com.sun.jersey.api.client.config.ClientConfig config = new com.sun.jersey.api.client.config.DefaultClientConfig();
client = Client.create(config);
webResource = client.resource(BASE_URI).path("entity.person");
}

public void remove(String id) throws UniformInterfaceException {
webResource.path(java.text.MessageFormat.format("{0}", new Object[]{id})).delete();
}

public String countREST() throws UniformInterfaceException {
WebResource resource = webResource;
resource = resource.path("count");
return resource.accept(javax.ws.rs.core.MediaType.TEXT_PLAIN).get(String.class);
}

public T findAll_XML(Class responseType) throws UniformInterfaceException {
WebResource resource = webResource;
return resource.accept(javax.ws.rs.core.MediaType.APPLICATION_XML).get(responseType);
}

public T findAll_JSON(Class responseType) throws UniformInterfaceException {
WebResource resource = webResource;
return resource.accept(javax.ws.rs.core.MediaType.APPLICATION_JSON).get(responseType);
}

public void edit_XML(Object requestEntity) throws UniformInterfaceException {
webResource.type(javax.ws.rs.core.MediaType.APPLICATION_XML).put(requestEntity);
}

public void edit_JSON(Object requestEntity) throws UniformInterfaceException {
webResource.type(javax.ws.rs.core.MediaType.APPLICATION_JSON).put(requestEntity);
}

public void create_XML(Object requestEntity) throws UniformInterfaceException {
webResource.type(javax.ws.rs.core.MediaType.APPLICATION_XML).post(requestEntity);
}

public void create_JSON(Object requestEntity) throws UniformInterfaceException {
webResource.type(javax.ws.rs.core.MediaType.APPLICATION_JSON).post(requestEntity);
}

public T findRange_XML(Class responseType, String from, String to) throws UniformInterfaceException {
WebResource resource = webResource;
resource = resource.path(java.text.MessageFormat.format("{0}/{1}", new Object[]{from, to}));
return resource.accept(javax.ws.rs.core.MediaType.APPLICATION_XML).get(responseType);
}

public T findRange_JSON(Class responseType, String from, String to) throws UniformInterfaceException {
WebResource resource = webResource;
resource = resource.path(java.text.MessageFormat.format("{0}/{1}", new Object[]{from, to}));
return resource.accept(javax.ws.rs.core.MediaType.APPLICATION_JSON).get(responseType);
}

public T find_XML(Class responseType, String id) throws UniformInterfaceException {
WebResource resource = webResource;
resource = resource.path(java.text.MessageFormat.format("{0}", new Object[]{id}));
return resource.accept(javax.ws.rs.core.MediaType.APPLICATION_XML).get(responseType);
}

public T find_JSON(Class responseType, String id) throws UniformInterfaceException {
WebResource resource = webResource;
resource = resource.path(java.text.MessageFormat.format("{0}", new Object[]{id}));
return resource.accept(javax.ws.rs.core.MediaType.APPLICATION_JSON).get(responseType);
}

public void close() {
client.destroy();
}

}
< /code>

Я пытаюсь получить к нему доступ со следующим образом и справляться с ним так же, как xml, < /p>

ClientResponse response = client.findAll_JSON(ClientResponse.class);
< /code>

Но это дает мне < /p>

Exception in thread "main" javax.ws.rs.WebApplicationException: javax.xml.bind.UnmarshalException
- with linked exception:
[com.sun.istack.internal.SAXParseException2; lineNumber: 0; columnNumber: 0; unexpected element (uri:"", local:"id"). Expected elements are ]
at com.sun.jersey.core.provider.jaxb.AbstractListElementProvider.readFrom(AbstractListElementProvider.java:251)
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:553)
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:523)
at soatestclient.SOATestClient.main(SOATestClient.java:33)
Caused by: javax.xml.bind.UnmarshalException
< /code>

Я был бы благодарен, если бы вы могли помочь мне по этому вопросу. Спасибо!


Подробнее здесь: https://stackoverflow.com/questions/113 ... ava-client
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»