当前位置: 首页 > 知识库问答 >
问题:

wsgen无法忽略JAXB注释

帅博远
2023-03-14

我一直在使用Metro,遇到了一个问题,wsgen似乎忽略了我在web方法响应类上添加的任何JAXB注释。

我试图返回一组实体类,我想通过网络服务向外部客户端公开,但是我只想让某些类属性和方法对外部客户端可见,所以将类存取类型设置为PROPERTY,并进行注释所有属性我想成为@XmlElement类的XML版本的一部分。

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

我试图用@xmltransive注释该方法,以便wsgen忽略它,但没有效果。如果有人能建议我应该怎么做才能让wsgen关注我的注释,那就太好了。

共有1个答案

寿阳华
2023-03-14

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

了解更多信息

  • http://blog.bdoughan.com/2012/04/jaxb-and-unmapped-properties.html
 类似资料:
  • 对象使用JAXBContext创建的封送器进行封送。生成的xml将变成: 类Hi是从不能更改的xsd生成的。我的问题是,如果“hello”为null,有没有一种方法可以让封送器忽略nillable参数,并且不向xml输出任何内容?

  • 我正在尝试使用JAXB生成一个sitemap.xml,并且忽略了location属性(我想在根元素上生成属性)。 我想生成一个xml,如下所示: 生成根元素,如下所示: 如果我更新测试以使用显式设置位置,那么它将被填充--但我想了解为什么它不能与注释一起工作。

  • 我试图使用Jackson注释来重新命名序列化过程中产生的一些json标签。所有注释都编译得很好,当我运行时,除了所有Jackson注释之外,Jackson序列化工作完全被忽略。即使像@jsonignore或@jsonproperty这样的基本命令对json响应也没有影响。构建路径中的库有: 下面是我需要序列化的一个类的代码示例:

  • 有什么想法为什么@primary在这里没有被考虑在内吗?

  • 当目标WSDL/XSDS放在某些特定路径下时,wsimport和xjc命令(都是作为Java JDK的一部分下载的)将忽略提供的jaxb绑定文件。

  • 问题内容: 我的@Transactionnal注释似乎被忽略了。我对Spring容器的初始化没有任何错误。看来我的方法尚未被Spring TX框架代理。在执行服务的方法期间,JDBCTemplate会引发预期的RuntimeException。问题在于JDBC连接没有回滚,并且更改保持不变。stacktrace没有显示应该包装我的服务方法的代理的任何迹象。 编辑:添加了控制器的代码 编辑2:添加了