【问题标题】:Receiving a null BigDecimal from JAX-WS when client input is an invalid String当客户端输入是无效字符串时,从 JAX-WS 接收 null BigDecimal
【发布时间】:2011-11-24 22:31:06
【问题描述】:

我正在使用 WSDL(合同优先)开发 Web 服务,该服务将其中一个字段定义为十进制类型,JAXB 在生成客户端代码时将其转换为 BigDecimal。

到目前为止一切顺利。但是当我使用 SoapUI 进行测试时,如果我为这个字段发送一个无效的字符串(比如“xxxx”),我会在服务器端收到一个空的 BigDecimal。如果我发送一个有效的数值,工作正常。

我不能说这种行为对我来说毫无意义。 API 可能会收到 NumberFormatException,可能来自 BigDecimal 的构造函数,并且只是发送一个空值以避免在到达服务器端之前引发异常。

但在我关闭此问题之前,我想确认此行为或了解一些“修复”,让我自己处理可能的转换错误。到目前为止,我还没有找到任何关于这种情况的文件。此外,我在调试 API 时也找不到任何可疑的东西。

您能帮我指路吗?可能会改变这种行为或证明它。

提前谢谢你。

【问题讨论】:

    标签: java web-services jaxb jax-ws


    【解决方案1】:

    这是一个与国际化有关的问题。

    我们还有一个需要 BigDecimal 的 Web 服务,例如:2.56。

    我们在意大利的一位客户正在发送 2,56。这导致接收到一个空参数。这是因为该客户端使用意大利语言环境。

    【讨论】:

    • 是的,就是这样!使用正确的 i18n 设置。谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    相关资源
    最近更新 更多