Отключить функцию anpersand escape в ответе RestEasy XML - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть простой сервис restful, который преобразует JAXB-аннотированные bean-компоненты в XML-ответ с помощью RestEasy. Теги XML могут содержать экранированные специальные символы (например, -). Но маршалл RestEasy еще раз избегает символов амперсанда, и я получаю & amp; # 8211; вместо - в результате XML.

Как мне избежать лишнего амперсанда и выхода из него?

1 Ответ

0 голосов
/ 15 марта 2012

Я охотился за этим, и я не могу найти способа точно настроить способ, которым RESTEasy избегает символов, когда записывает ответ.Я работаю над использованием перехватчика, чтобы предотвратить эту кодировку.

Для справки, это происходит в setEscape () в стеке, когда он кодирует UTF-8 XML.

Encoded.setEscape(String, boolean) line: 107    
UTF8XmlOutput.doText(String, boolean) line: 315 
UTF8XmlOutput.text(String, boolean) line: 299   
XMLSerializer.leafElement(Name, String, String) line: 325   
RuntimeBuiltinLeafInfoImpl$1.writeLeafElement(XMLSerializer, Name, String, String) line: 210    
RuntimeBuiltinLeafInfoImpl$1.writeLeafElement(XMLSerializer, Name, Object, String) line: 209    
TransducedAccessor$CompositeTransducedAccessorImpl<BeanT,ValueT>.writeLeafElement(XMLSerializer, Name, BeanT, String) line: 250 
SingleElementLeafProperty<BeanT>.serializeBody(BeanT, XMLSerializer, Object) line: 98   
ClassBeanInfoImpl<BeanT>.serializeBody(BeanT, XMLSerializer) line: 332  
XMLSerializer.childAsXsiType(Object, String, JaxBeanInfo, boolean) line: 699    
SingleElementNodeProperty<BeanT,ValueT>.serializeBody(BeanT, XMLSerializer, Object) line: 152   
ClassBeanInfoImpl<BeanT>.serializeBody(BeanT, XMLSerializer) line: 332  
XMLSerializer.childAsSoleContent(Object, String) line: 593  
ClassBeanInfoImpl<BeanT>.serializeRoot(BeanT, XMLSerializer) line: 320  
XMLSerializer.childAsRoot(Object) line: 494 
MarshallerImpl.write(Object, XmlOutput, Runnable) line: 315 
MarshallerImpl.marshal(Object, Result) line: 244    
MarshallerImpl(AbstractMarshallerImpl).marshal(Object, OutputStream) line: 75   
JAXBXmlRootElementProvider(AbstractJAXBProvider<T>).writeTo(T, Class<?>, Type, Annotation[], 
...
...