0

从 Web 服务返回数据时,我遇到了一些问题。
我正在使用 Metro 堆栈。

问题:
问题是我的数据包含一些控制字符。我不想加密我的数据,因为这也将涉及客户端代码更改。
更好的方法是删除控制字符,但逐个字符扫描和删除/replaceAll 会对性能产生一些影响。

可能的解决方案:
我想要做的是在 Metro 将 SOAP 消息发送到客户端之前拦截它并检查控制字符。然后在返回之前替换 XML 的所有控制字符。

这里有人知道如何在返回之前拦截响应吗?或者
我如何编写自己的序列化器/反序列化器来替换控制字符?

谢谢。

4

2 回答 2

0

我想您可以使用Provider接口来执行此操作。您的提供者实现将被调用,而不是实际的 Web 服务。然后您将解析 XML 并将调用转发给您的服务实现。

我觉得使用起来有点麻烦,但如果它有效..

于 2011-05-23T13:01:37.577 回答
0

我发现 XMLAdapter 对我来说非常有用。添加信息,以防任何朋友发现它有用。
参考:http ://weblogs.java.net/blog/kohsuke/archive/2005/09/using_jaxb_20s.html

XMLAdapter 包含抽象方法 marshal 和 unmarshal。所以我在编组/解组方法中使用了适当的编码器。

于 2011-07-18T07:18:51.130 回答