如何在JAXB中转换整数参数?

时间:2011-10-03 05:30:01

标签: java web-services jaxb

我正在使用JAX-WS和JAXB创建SOAP服务。有一个计数参数。如何使用costomize DataTypeConvert进行转换?我想通过我的costomisze DataTypeConvert转换一个Integer(不是POJO)param对象。因为如果SOAP消息包含“count”标记,则此值将设置为0,但如果SOAP消息没有“count”标记,则此值将设置为null。我希望make在两种情况下将此参数设置为null。如果POJO中的Integer字段,我可以使用@XmlJavaTypeAdapter来转换它。但@XmlJavaTypeAdapter不能在方法中干扰的整数参数上使用。

     @WebMethod
     public Team getTeamByCondition(@WebParam(name = "Name") String name,
        @WebParam(name = "Condition") String condition,
        @WebParam(name = "Count") Integer count) {
     }

如果有人能告诉我JAX-WS如何转换params?

1 个答案:

答案 0 :(得分:0)

您可以使用JAXB为计数创建包装类。

@XmlType
class Count {
    @XmlValue
    Integer count;
}

另一种选择...... 如果您想使用包装器类,请查看XmlAdapter。那里有很好的样品。基本上你用@XmlJavaTypeAdapter注释你的Integer。注释应指向您创建的适配器。您仍然需要创建一个类似上面的包装类,但您的适配器可以将您定义的任何Integer映射到此包装类。