我正在使用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?
答案 0 :(得分:0)
您可以使用JAXB为计数创建包装类。
@XmlType
class Count {
@XmlValue
Integer count;
}
另一种选择...... 如果您想使用包装器类,请查看XmlAdapter。那里有很好的样品。基本上你用@XmlJavaTypeAdapter注释你的Integer。注释应指向您创建的适配器。您仍然需要创建一个类似上面的包装类,但您的适配器可以将您定义的任何Integer映射到此包装类。