当客户端应用程序调用我们的jax-ws api时获取xs:timestamp而不是xs:date

问题描述 投票:0回答:1

我们在SOAP API中将日期限制为xs:date,其模式为'\ d {4}-\ d {2}-\ d {2}'。我们能够使用SOAP UI对其进行测试,并且运行良好。当客户端应用程序调用我们的API时,我们将获取日期字段值作为时间戳,这是因为我们的架构验证会引发错误并生成SOAP Fault。

我们正在使用JAX-WS规范API来实现我们的Web服务(Websphere作为应用程序服务器),并使用WAS默认实现。

在客户端SOAP日志中,日期值打印为'1990-01-01',但在我们的应用程序SOAP日志中,日期值打印为'1990-01-01T06:00:00.000Z' 。 (客户端使用Metro JAX-WS实现)。我在这里想念什么?

java web-services soap websphere jax-ws
1个回答
0
投票

之所以发生这种情况,是因为WebSphere(版本8.5.5,修订包16)在移交给SOAP处理程序之前处理/转换了SOAP XML。要禁用它并在处理程序中使用SOAP XML,我们将WAS属性jaxws.payload.highFidelity设置为true。此后,我们将获得正确的SOAP XML,并且XML模式验证可以按预期进行。

© www.soinside.com 2019 - 2024. All rights reserved.