我最近将opensaml依赖关系从2.5.3升级到2.6.1和xmlutil 1.3.0至1.4.1。 它编译时没有任何错误,但在运行应用程序时,我得到以下异常:
java.lang.NullPointerException
org.opensaml.xml.io.AbstractXMLObjectMarshaller.marshall(AbstractXMLObjectMarshaller.java:84)
致电代码:
final MarshallerFactory marshallerFac = SAMLUtil.getMarshallerFactory();
final org.opensaml.xml.io.Marshaller authnStatementMarshaller = marshallerFac.getMarshaller(assertion);
Element assertionElement = null;
try {
assertionElement = authnStatementMarshaller.marshall(assertion);
try {
// Sign assertion and query signature
Signer.signObject(signature);
}
catch (final SignatureException e) {
LOGGER.error("Fout opgetreden bij ondertekenen Assertion", e);
}
}
答案 0 :(得分:4)
我注意到如果你没有初始化(" bootstrap")SAML配置,当你试图构造它时,你得到一个NullPointerException(相当无用,我可能会添加) SAML。
import org.opensaml.DefaultBootstrap;
import org.opensaml.xml.ConfigurationException;
try {
DefaultBootstrap.bootstrap();
}
catch (ConfigurationException ce) {
}
上面只是一段代码来说明我在谈论的内容。你有没有忘记引导配置?必须在你做任何事之前完成。