所以我需要在SOAP服务响应中添加一个新字段。问题是该字段必须从持久字段中获取值。我无法直接添加该持久字段。持久字段返回一个“Calendar”实例,实际上是MySQL的DATETIME。当前对象使用XmlAdapter。
我做了类似的事情:
class SomeClassImpl extends SomeClass
{
@Transient
@XmlSchemaType(name="someDate")
private String someDate;
...
public void defSomeDate()
{
this.someDate = this.getPersistentDate().toString();
}
public String retSomeDate()
{
return this.someDate();
}
}
新字段出现在soap结果中,但该值是一个例外,我现在不记得,我现在无法重现它。
你会怎么做?是否可以注释方法而不是成员,以便它出现在SOAP结果中?如果是的话,宣布会是什么样子?
提前谢谢!
答案 0 :(得分:0)
问题是以下代码:
@XmlSchemaType(name="someDate")
“name”参数应该是xml的标准数据类型之一。在这种情况下,因为它包含日期和时间,所以它应为“dateTime
”。它也可以是string
,但将其声明为dateTime会使该字段更具限制性。因此,正确的注释是:
@XmlSchemaType(name="dateTime")
考虑到日期和时间,第二个观察结果是private String someDate;
应该是private CalendarsomeDate;
,以保持一致,并且实际代码也可以使用。
不需要注释方法。只要在运行时将某个成员/属性设置在某处,只需注释成员/属性就足够了。
我希望这对其他人也有帮助。我花了几个小时才得到这个,但现在我知道将来如何进行。