JavaSOAP服务:基于持久结果字段添加非持久结果字段

JavaSOAP服务:基于持久结果字段添加非持久结果字段,java,web-services,soap,Java,Web Services,Soap,因此,我需要向SOAP服务响应添加一个新字段。问题是该字段必须从持久性字段中获取值。我不能直接添加那个持久字段。persistent字段返回一个日历实例,实际上,它是来自MySQL的日期时间。当前对象使用XmlAdapter 我是这样做的: class SomeClassImpl extends SomeClass { @Transient @XmlSchemaType(name="someDate") private String someDate; ...

因此,我需要向SOAP服务响应添加一个新字段。问题是该字段必须从持久性字段中获取值。我不能直接添加那个持久字段。persistent字段返回一个日历实例,实际上,它是来自MySQL的日期时间。当前对象使用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结果中?如果是,注释会是什么样子


提前谢谢你

问题在于以下代码:

@XmlSchemaType(name="someDate")
name参数应该是xml的标准数据类型之一。在这种情况下,因为它包含日期和时间,所以它应该是“dateTime”。它也可以是字符串,但将其声明为dateTime会使字段更具限制性。因此,正确的注释是:

@XmlSchemaType(name="dateTime")
考虑到日期和时间,第二个观察结果是私有字符串someDate;应为private CalendarsomeDate;,要保持一致,也要确保实际代码正常工作

不需要对方法进行注释。只要在运行时将成员/属性设置在某个位置,简单地注释该成员/属性就足够了

我希望这对其他人也有帮助。我花了几个小时才弄到这个,但现在我知道以后该怎么做了