【问题标题】:Metro stack java web services write own serializer/deserializerMetro stack java web services编写自己的序列化器/反序列化器
【发布时间】:2011-03-22 11:26:55
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

    标签: java web-services java-metro-framework


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-16
        • 2018-09-03
        • 1970-01-01
        • 2018-07-11
        • 2011-07-20
        • 1970-01-01
        相关资源
        最近更新 更多