2014-09-25 6 views
2

Я пытаюсь написать java-клиент для Restful web-сервиса, реализованного с использованием WCF & NTLM Authentication.Потребление WCF успокаивающее webservice с java-клиентом?

Я могу использовать библиотеку Apache HTTPClient для подключения и получения данных.

Следующий код дает мне ответ в текстовой форме JSon.

DefaultHttpClient httpClient = new DefaultHttpClient(); 
httpClient.getCredentialsProvider().setCredentials(new AuthScope(hostName, 443), new NTCredentials(userName, password, hostName, domainName)); 
httpclient.getAuthSchemes().register("ntlm", new NTLMSchemeFactory()); 
HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 150000); 

HttpGet httpget = new HttpGet(url); 
httpget.setHeader("Content-Type", "application/json"); 
HttpResponse response = httpclient.execute(httpget); 
HttpEntity responseEntity = response.getEntity(); 
content = EntityUtils.toString(responseEntity); 

Сейчас я пишу JSON парсер для преобразования текста JSON в бизнес-объекты (созданные вручную классы).

Кто-нибудь знает, как автоматизировать создание класса бизнес-объектов и автоматический парсер ответов для преобразования текста Json в объект Java, поскольку мы используем веб-службы на основе SOAP, используя фреймворки, такие как Axis/CXF?

+1

Вы спрашиваете, существует ли уже синтаксический анализатор, который анализирует текст JSon непосредственно на объект Java? Или вы запрашиваете способ создания прокси-классов из WSDL-схемы службы? Если служба предоставляет как конечные точки SOAP, так и REST, вы можете получить WSDL, добавив «? Wsdl» к URL-адресу службы. Созданные DTO должны работать как для конечных точек REST, так и для SOAP. –

+0

Мне нужна структура для создания DTO на основе сервиса и конвертера из Raw JSon text в DTO при вызове REST. Служба SOAP не отображается – thangamanikasi

+0

Но * может * вы получаете WSDL, добавляя '? Wsdl' к URL-адресу службы, например, как http: //host/service.svc? Wsdl'? Если возможно, вы можете использовать один из многих инструментов, создающих служебные прокси для создания DTO. Если вы не можете, нет схемы для создания ваших DTO. Вы можете использовать инструмент для создания DTO из образца JSon, предполагая, что образец содержит все DTO, с которыми вы столкнетесь. –

ответ

1

Существует несколько вариантов автоматического преобразования данных JSON в объекты Java. Возможны следующие варианты:

  • Jackson - Аннотировать классы Java и поля, чтобы связать их с схемой JSON.
  • Google GSON - Может создавать простые методы toJson() и fromJson() для преобразования объектов Java в JSON и наоборот. Работает с существующими классами без изменения исходного кода.
  • JSON.org - Не сопоставляет JSON непосредственно с вашими Java-классами, но предоставляет синтаксический анализ в классах JSONObject и JSONArray, чтобы упростить работу с JSON.

Больше ответов можно найти в этом вопросе: How to parse JSON in Java

EDIT Все вышеперечисленное требует ручного создания объектов Java, а затем связывая их с представлением JSON. Если вместо этого вы хотите автоматически создавать объекты Java, соответствующие объектам C#, я не знаю, как это сделать автоматически, однако инструмент JSONSchema2POJO будет генерировать Java POJO из образца JSON, чтобы вы могли сэкономить когда-то.

+0

Спасибо, Ричард. Джексон решает мою проблему до какого-то уровня. Но все же есть некоторые ручные шаги. Будет опубликован, если я смогу полностью автоматизировать. – thangamanikasi

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