我一直在使用Metro,遇到了一个问题,wsgen似乎忽略了我放在web方法响应类上的任何JAXB注释。
我试图返回一组实体类,希望通过web服务公开给外部客户端,但是我只想让某些类属性和方法对外部客户端可见,因此将类访问类型设置为PROPERTY,并使用@XmlElement注释了我希望成为该类XML版本一部分的所有属性。
我可以使用schemagen ant任务为实体类创建XML schema,它正确地忽略了我没有用@XmlElement注释的任何属性或方法,但是,当我运行wsgen为web服务创建wsdl时,它有一个返回实体类集合的方法,然后我得到了一个java.lang.NoClassDefFoundError。这似乎是因为wsgen没有忽略它应该忽略的实体类上的公共方法,异常引用的类是该方法的参数。
我曾尝试使用@XmlTransient注释该方法,以便wsgen忽略它,但无济于事。如果有人能建议我应该怎么做才能让wsgen注意到我的注释,那就太好了。
发布于 2012-12-03 19:55:23
带注释的字段/属性将始终被处理,而与访问器类型无关。如果您只想将带注释的字段/属性视为映射字段,则需要指定@XmlAccessorType(XmlAccessType.NONE)。
有关详细信息的,请访问
https://stackoverflow.com/questions/13682619
复制相似问题