wsgen无法忽略JAXB注释

时间:2012-12-03 11:48:09

标签: jaxb annotations wsdl wsgen

我一直在使用Metro并且遇到了一个问题,即wsgen似乎忽略了我放在Web方法响应类中的任何JAXB注释。

我正在尝试返回一组我希望通过Web服务向外部客户端公开的实体类,但是我只想让外部客户端看到某些类属性和方法,所以设置了类访问类型是PROPERTY,并注释了我希望成为带有@XmlElement的类的XML版本的所有属性。

我可以使用schemagen ant任务为实体类创建XML模式,该任务正确地忽略了我没有使用@XmlElement注释的任何属性或方法,但是当我运行wsgen为web服务创建wsdl时一个返回一组实体类的方法,然后我得到一个java.lang.NoClassDefFoundError。这似乎是因为wsgen没有忽略它应该做的实体类上的公共方法,异常引用的类是此方法的参数。

我试图用@XmlTransient注释该方法,以便wsgen忽略它,但无济于事。如果有人可以建议我应该做些什么来让wsgen注意我的注释,那就太棒了。

1 个答案:

答案 0 :(得分:0)

无论访问者类型如何,都将始终处理带注释的字段/属性。如果您只希望将带注释的字段/属性视为已映射,则需要指定@XmlAccessorType(XmlAccessType.NONE)

了解更多信息