2012-04-19 2 views
2

У меня есть следующая проблема. У меня есть веб-сервис, который использует Джерси, он может производить 2 вида возвращаемых данных - XML ​​и JSON.'"' вместо обычных котировок ("") при возврате XML из Джерси

@GET 
@Produces({"application/xml","application/json"}) 

Возвращение данных также содержит строку, которая есть кавычки "", если возвращаете тип данных JSON, чем все работает правильно - строка с нормальными кавычки "" возвращаются, но в случае возвращения типа данных XML, чем строка с Возвращается ".

Проблема в том, что на стороне клиента ожидается строка с нормальными "" котировками. Помогите, пожалуйста, решить эту проблему.

Ожидаемый пример строки:

{"key1":"value1","key2":"value2"} 
+1

Почему это проблема? Парсер XML должен интерпретировать '"' как символ кавычки. Джерси, вероятно, кодирует все, что может даже в содержании элементов, а не только кодирование кавычек в содержимом атрибутов. (Либо просто убедиться, либо сделать код более простым.) – millimoose

+0

Это не проблема. Это правильное поведение XML или, по крайней мере, из того, что вы сказали, это звучит правильно. Возможно, пример результата, который вы считаете неправильным, поможет. –

+0

Я понимаю, что это правильное поведение, но на стороне клиента ожидается нормальная строка с нормальными ("") котировками. Итак, это проблема = ( –

ответ

1

Вы можете посмотреть по адресу: Can I force JAXB not to convert " into ", for example, when marshalling to XML?

(JAX-RS использует JAXB).

Я знаю, что & quot; и & apos; может быть проблематичным, поскольку я видел, как некоторые старые системы XML делают странные вещи (включая почтенный IE 7).

+0

Спасибо за совет, но как я могу использовать этот метод для моего веб-сервиса, который использует контекст jersey? –

+0

@VladimirSelin Jersey реализует JAX-RS, который использует JAXB для XML (который вы должны знать). –

+0

Я это знаю =). Вопрос был: если вы можете посоветовать мне, как я могу «рассказать» Джерси, который JAXBFactory должен использовать, как в моем приложении. Джерси делать все сам по себе. Заранее спасибо) –

0

XML используется для программно-к-коммуникационной программы. " внутри символьных данных имеет то же значение, что и ".

У вас возникли проблемы в программе, где вы пытаетесь проанализировать «возвращенные данные»?

+0

Да, нормальная строка с нормальными кавычками ожидается на стороне клиента. –

+0

@VladimirSelin Ожидается, что? Что именно работает на стороне клиента и почему не удается проанализировать правильно сформированный XML? Вы решаете неправильную проблему: фактическая проблема заключается не в замене котировок на стороне сервера с помощью «" '(который дает вам действительный XML), но клиентская сторона не может обработать такой XML. Это также может быть намеком на некоторые более глубокие проблемы на стороне клиента, такие как уязвимость к различным инъекциям. – penartur

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