2016-11-09 7 views
1

Я определил службу обслуживания с вложенными запросами. Отображение вывода определяется в XML. Я получаю правильный ответ как XML. Но если я прошу ответ JSON с помощью Accept: Application/JSON я получаюWSO2DSS 3.5.1 - Проблема в ответе JSON от службы RESTful

{ 
    "Fault": { 
    "faultcode": "soapenv:Server", 
    "faultstring": "Error while writing to the output stream using JsonWriter", 
    "detail": "" 
    } 
} 

я получаю ниже исключения в 3.5.0, и я нашел JIRA говоря, что это фиксируется в 3.5.1. Поэтому я попытался в 3.5.1, теперь я не получаю меньше исключения, но тот же результат.

javax.xml.stream.XMLStreamException: Invalid Staring element 

Пожалуйста, обратите внимание, я также попробовал escapeNonPrintableChar="true" вариант в моих запросах, но без использования. Странно, что он работает для разных наборов данных. Только один конкретный набор данных бросает этот вывод.

Я изменил форматировщики JSON, как показано ниже, и получил его для работы, но в этом есть проблема.

<messageFormatter contentType="application/json" class="org.apache.axis2.json.JSONMessageFormatter"/> 
<!--messageFormatter contentType="application/json" class="org.apache.axis2.json.gson.JsonFormatter"/--> 

<messageBuilder contentType="application/json" class="org.apache.axis2.json.JSONOMBuilder"/> 
<!--messageBuilder contentType="application/json" class="org.apache.axis2.json.gson.JsonBuilder" /--> 

Если я использую выше форматер, нулевые значения не отображаются должным образом. Как я получаю

"Person": { 
      "Name": { 
      "@nil": "true" 
      } 

, но я хочу, как (например, другой JSON форматировщиком используется, чтобы дать)

"Person": { 
      "Name": null 
      } 

Любая помощь, пожалуйста. Есть ли еще ошибка в этой области?

ответ

3

Когда вы создаете запрос в своем ответе на выход, вы определяете формат, в котором хотите получить ответ, который вы можете выбрать xml или json, в случае, если вы укажете, что вы можете выбрать опцию json, а затем выберите сгенерировать ответ, это создает это json структура.

{ 
"entries": { 
"entry": [ 
{ 
"field1": "$column1", 
"field2": "$column2" 
} 
] 
} 
} 

Тогда вы можете изменить ответ, который вам нужен, с полями. Вот пример того, как я использую его в моем запросе

{ 
"Pharmacies": { 
"Pharmacy": [ 
{ 
"ID": "$Id", 
"Descripcion": "$Desc", 
"Latitude": "$Latitude", 
"Longitude": "$Longitude", 
"Image": "$Image" 
} 
] 
} 
} 

Значения с «$» будут соответствовать названию столбца запроса

С уважением

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

  • Нет связанных вопросов^_^