我一直在使用 Metro 并遇到了一个问题,即 wsgen 似乎忽略了我在 Web 方法响应类上放置的任何 JAXB 注释。
我正在尝试返回一组我想通过 Web 服务向外部客户端公开的实体类,但是我只想使某些类属性和方法对外部客户端可见,因此已将类访问类型设置为 PROPERTY ,并用@XmlElement 注释了我想成为该类的XML 版本的一部分的所有属性。
我可以使用 schemagen ant 任务为实体类创建 XML 模式,该任务正确地忽略了我没有使用 @XmlElement 注释的任何属性或方法,但是当我运行 wsgen 为具有方法的 Web 服务创建 wsdl 时返回一组实体类,然后我得到一个 java.lang.NoClassDefFoundError。这似乎是因为 wsgen 没有忽略它应该执行的实体类上的公共方法,异常引用的类是该方法的参数。
我尝试使用 @XmlTransient 注释该方法,以便 wsgen 忽略它,但无济于事。如果有人能建议我应该做些什么来让 wsgen 关注我的注释,那就太好了。