以xml格式在数据库中存储soap Xml响应

时间:2017-10-18 20:35:21

标签: java xml web-services soap

如何以XML格式在数据库中存储soap XML响应?

我尝试将SOAP响应存储在Java对象中并编组为XML以存储在SQL数据库中。它工作正常,但是在编组之后存在日期问题,即日期即将到来2017-10-10-05:00。所以这就产生了一个问题。 任何人都可以告诉我是否有另一种方法在Oracle数据库中以XML格式存储Soap XML响应。

1 个答案:

答案 0 :(得分:0)

好的,我错了。 格式是正确的XML,它是一个时区。 此类输出默认生成 javax.xml.bind.DatatypeConverter.printDate(Calendar val)方法。 (这意味着您的XSD具有xs:date类型的元素。)

所以,只要你不想在Date as String中有时区信息,我想你有下一个选择:

  1. 创建自己的转换器并在绑定文件中定义(如我在评论中给出的链接) - 小心使转换器全局化。如果您不需要将其应用于所有xsd:date字段,那么绑定将会非常复杂。

  2. 如果是关于一个字段,请更好地查看答案中的链接:

  3. JAXB unmarshaller with custom interceptor? 它也适用于Marshaller。

    Jaxb Marshaller没有处理程序或回调拦截器。由Java类或绑定文件中的Annotations进行的所有控制。

    1. 如果它只是一个字段(简单的“野蛮”方式) - 在将XML作为字符串存储到数据库之前,从代码中的所需字段中删除时区。

    2. 如果您没有在代码中将Pojo编组为String,但是某些框架在前往数据库的路上为您执行,请检查可以操作有效负载的拦截器框架。通常他们都在那里。

    3. 首选正确选项:1(如果适用于所有xsd:日期字段)或2(如果仅适用于一个字段)。