2013-07-02 4 views
0

Как я могу использовать объект JSON на своем веб-сервере RESTful. Как должен быть клиент. Я использую сервер Джерси. EX.Объект JSON на моем веб-сервере RESTful

//BEAN 
public class Student{ 
public String name; 
} 

//SERVER 
@POST @Consumes("application/json") 
@Path("/create") 
public void create(Student s1) { 
    System.out.println(s1.name); 
} 

//CLIENT 
ClientConfig config1 = new DefaultClientConfig(); 
Client client1 = Client.create(config1); 
client1.addFilter(new LoggingFilter()); 
WebResource service1 = client1.resource(getBaseURI()); 
Student s = new WSTestClient.Student(); 
s.name="POP"; 
service1.path("create").type(MediaType.APPLICATION_JSON).post(s); 

Его не работает ...

+0

любые ошибки, возникающие при работе над кодом? – Sikorski

ответ

0

Проблема в моем клиенте я должен добавить следующую строку, чтобы клиент отправить JSON объект

config1.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE) 

должны добавьте POJO-сопоставление в ClientConfig.

0

Большая часть среды разработки веб-сервисов REST делает сортировочной из JSON к объектам. Вы должны использовать параметр формы json в запросе POST и назначить его объекту java bean. Вот контракт выборочный метод для того же с помощью рамок-Джерси:

@POST 
@Consumes(MediaType.APPLICATION_JSON) 
public Response sampleRestMethod(@FormParam ("jsonStringParamName") YourCorrespondingJavaBean yourCorrespondingJavaBeanObj); 

Следуйте этим простым, но на самом деле хороший учебник, чтобы узнать больше о написании RESTful-сервиса с использованием трикотажа и JSON как тип содержимого:

http://www.mkyong.com/webservices/jax-rs/json-example-with-jersey-jackson/

+0

У меня есть немного путаницы с вашим ответом, в вашем методе, YourCorrespondingJavaBean - это строка JSON или если она должна быть компонентом JAVA, public Response sampleRestMethod (@FormParam («jsonStringParamName») YourCorrespondingJavaBean oYourCorrespondingJavaBean); –

+0

@Pasupathi Да исправлено! –

+0

com.sun.jersey.api.client.ClientHandlerException: com.sun.jersey.api.client.ClientHandlerException: писатель тела сообщения для типа Java, класс com.WSTestClient $ Student и тип MIME-носителя, application/json, был не найден Это исключение, которое я получил от клиента ... –

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