【发布时间】:2017-03-23 14:35:22
【问题描述】:
我尽了最大的努力去弄清楚,但失败了。 Spring Jaxb2Marshaller 似乎忽略了 CharacterEscapeHandler ! :-(
这是我的代码:
<bean id="aisWsMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPath" value="com.capgemini.manulife.integration.generated.ais.ws.oneshot"/>
<property name="marshallerProperties">
<map>
<entry key="com.sun.xml.bind.characterEscapeHandler" value-ref="noEscapeCharacterHandler">
</entry>
</map>
</property>
</bean>
<bean id="noEscapeCharacterHandler" class="com.capgemini.manulife.integration.NoEscapeCharacterHandler">
</bean>
public class NoEscapeCharacterHandler implements CharacterEscapeHandler {
@Override
public void escape(char[] ch, int start, int length, boolean isAttVal, Writer out) throws IOException {
out.write(ch, start, length);
System.out.println("AAAA");
}
} 真的很累:-(
【问题讨论】:
-
我想我会尝试 WebServiceMessageCallback 来取消请求,但不幸的是,MarshallingRequestMessageCallback 是私有的 final :-(
-
WebServiceMessageCallback 是不可能的,因为它只能添加标题、元素....而不是 unescape。
标签: spring-ws spring-oxm