我用一个简单的程序被困了好几天
我正在尝试对某些XML文档进行数字签名,然后将其添加到jaxb元素中,以便我可以使用soap message发送它。 我能够设置jaxb元素值,编组并签名。 当谈到再次解组我遇到问题时,我收到一个错误:
DefaultValidationEventHandler: [FATAL_ERROR]: unexpected element (uri:"http://someuri",
local:"SomeObject"). Expected elements are <someuri#DifferentObject}
根据错误“预期元素”恰好是XML数字签名(我的主要jaxb的子元素)
为了解决这个问题,我添加了 @XmlRootElement(name =“SomeObject”) 到我的jaxb类Model并且它没有问题解组,但是DigitalSignature节点(子元素)的命名空间向上移动。这是错误的,因为我的XML数字签名被破坏了,当我发送soap消息时更糟糕的是,命名空间在包装类中向上移动,因此原始签名数据完全不同。 问题是如何在jaxb和JAXWS-RI / 2.2.6中避免名称空间重定位?