Я успешно внедрил спокойный сервис, который работает с моим собственным клиентом.Теперь я хочу сделать это сервисом, чтобы другие клиенты могли также взаимодействовать с ним.Таким образом, я прихожу к следующим вопросам: (моментальные снимки моего кода появляются после моих вопросов, система прекрасно работает с моим кодом)
1- Как выглядят данные, передаваемые между сервером и клиентом?Учтите, что я не использовал другие аннотации JAXB (например, @XMLElement).Есть ли способ, которым я могу увидеть созданный JSON?
2 - предполагается, что JAXB - это «архитектура Java для привязки XML», поэтому он отправляет данные в виде XML или JSON (учитывая, что у меня естьуказали тип запроса json)?Или он преобразует объект в XML, а затем в JSON на клиенте и на сервере, получает ли он JSON и преобразовывает его в XML, а затем в объект Java?
3 - Я использую JAXBв моем клиенте, но мой сервер должен получить запрос JSON.Означает ли это, что любой другой клиент, если он создает json с парами «ключ» и «значение», может взаимодействовать с моим сервером?Или это заставляет каждого клиента использовать JAXB (учитывая, что мой метод на сервере имеет входные аргументы определенного объекта JAXBBean)?К сожалению, в настоящее время я не знаю, как создать и отправить JSON в Java без использования JAXB!Поэтому я не смог проверить этот вопрос, прежде чем спросить ... Я собираюсь изучить его позже.
Части моего кода:
Я использовал Джерси дляреализовать мое спокойное служение.На стороне клиента я отправляю почтовое сообщение со списком объектов JAXB на сервер.Каждый объект JAXB является экземпляром bean-компонента, аннотированного так:
@XmlRootElement
public class JAXBBean {
String key;
String val;
//setters and getters (with no annotation) come here
...
}
И я отправляю список на сервер с помощью:
String response = (String) publishWR.type("application/json").post(String.class, new GenericEntity<List<JAXBBean>> (reqArr){});
// publishWR is of type: com.sun.jersey.api.client.WebResource
// reArr is of type: List<JAXBBean>
На стороне сервера у меня есть методкоторый отвечает на почтовые запросы на этом веб-ресурсе, написанном так:
@POST
@Consumes("application/json")
public String postAnnotation(List<JAXBBean> requestArr){
String anno = "";
String user = "";
...
for(int i = 0 ; i < requestArr.size() ; i++ ){
if( requestArr.get(i).getKey().equals("annotation") )
anno = requestArr.get(i).getVal();
else if( requestArr.get(i).getKey().equals("username") )
user = requestArr.get(i).getVal();
...
}
...
}
Спасибо!