Преобразовать конверт SOAP в строку (OpenSAML) - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь сгенерировать ошибку SOAP и вернуть конверт SOAP в виде строки, используя библиотеку opensaml.Вот мой код.

XMLObjectBuilderFactory builderFactory = org.opensaml.xml.Configuration.getBuilderFactory();

SOAPObjectBuilder<Envelope> envelopeSOAPObjectBuilder = (SOAPObjectBuilder<Envelope>) builderFactory.getBuilder(
        Envelope.DEFAULT_ELEMENT_NAME);
Envelope envelope = envelopeSOAPObjectBuilder.buildObject();

SOAPObjectBuilder<Fault> faultSOAPObjectBuilder = (SOAPObjectBuilder<Fault>) builderFactory.getBuilder(
        Fault.DEFAULT_ELEMENT_NAME);
Fault fault = faultSOAPObjectBuilder.buildObject();

SOAPObjectBuilder<FaultCode> faultCodeSOAPObjectBuilder = (SOAPObjectBuilder<FaultCode>) builderFactory.getBuilder(
        FaultCode.DEFAULT_ELEMENT_NAME);
FaultCode faultCode = faultCodeSOAPObjectBuilder.buildObject();

SOAPObjectBuilder<FaultString> faultStringSOAPObjectBuilder = (SOAPObjectBuilder<FaultString>) builderFactory.getBuilder(
        FaultString.DEFAULT_ELEMENT_NAME);
FaultString faultString = faultStringSOAPObjectBuilder.buildObject();

SOAPObjectBuilder<Body> bodySOAPObjectBuilder = (SOAPObjectBuilder<Body>) builderFactory.getBuilder(
        Body.DEFAULT_ELEMENT_NAME);
Body body = bodySOAPObjectBuilder.buildObject();

fault.setCode(faultCode);
fault.setMessage(faultString);

body.getUnknownXMLObjects().add(fault);
envelope.setBody(body);

Может ли кто-нибудь предложить мне способ конвертировать мыльный конверт <> в строку?

1 Ответ

0 голосов
/ 10 октября 2018

Мыльный конверт можно преобразовать в строку с помощью импорта org.opensaml.xml.util.XMLHelper;

 System.out.println((XMLHelper.prettyPrintXML(marshallObject(envelope))));

Раньше это не работало должным образом, как я создалкод ошибки и строка ошибки неполные.

После добавления следующих строк перед fault.setCode (faultCode) код сработал.

 faultCode.setValue(FaultCode.CLIENT);
 faultString.setValue(FaultString.DEFAULT_ELEMENT_LOCAL_NAME);
...