注册一个解组器

Register an unmarshaller

我正在尝试将对 org.opensaml.saml.saml2.core.Response 的响应解组到 org.opensaml.xml.XMLObject。为此,我将响应设置为字符串,然后使用文档生成器将其解析为 org.w3c.dom.Document

现在,我想将文档的元素解组为 XMLObject。我的代码看起来像这样:

Element element = document.getDocumentElement();
UnmarshallerFactory unFactory = Configuration.getUnmarshallerFactory();
XMLObject xmlObject = unFactory.getUnmarshaller(element).unmarshall(element);

我在解组器工厂中遇到空指针异常,因为该元素的解组器不存在。当我调试时,对于 unFactory.unmarshaller,我看到的是 {}。

如何为元素注册解组器?

谢谢!

没关系。

我正在采用不同的方法并考虑构建文档和元素...等等。这种方法背后的想法是将元素添加到消息上下文并通过 soap 客户端发送。

我最终创建了一个 ArtifactResponse 对象并将其添加到 MessageContext<SAMLObject>