我有一个简单的 restful 服务,它使用 RestEasy 将 JAXB 注释 bean 转换为响应 XML。XML 标记可能包含转义的特殊字符(例如 –)。但是 RestEasy marshaller 又一次逃脱了 & 符号,我得到 – 而不是 – 在结果 XML 中。
我应该如何避免不必要的&符号转义?
我一直在寻找这个,我无法找到微调 RESTEasy 在写出响应时转义字符的方式。我正在使用拦截器来防止这种编码。
作为参考,它在对 UTF-8 XML 进行编码时发生在堆栈中的 setEscape() 处。
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[],
...