Статус: Новичок
Группы: Участники
Зарегистрирован: 21.06.2012(UTC) Сообщений: 1 Откуда: Москва
|
Сотрудник организации должен своей ЭЦП подписать XML документ (по СМЭВ элемент AppData). Далее этот подписанный XML документ должен стать частью исходящего SOAP-сообщения веб-сервиса. Проблема в том, что при включения xml в SOAP собщение xml меняется. Пример как это делает DOM: Есть файл soap.xml Код:<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:NewOperationResponse xmlns:ns2="http://xmlintosoap.martynov.ru">
</ns2:NewOperationResponse>
</S:Body>
</S:Envelope>
и файл test.xml Код:<out>
<ns2:a xmlns:ns2="http://xmlintosoap.martynov.ru" >
<ns2:b></ns2:b>
<ns2:c>123</ns2:c>
</ns2:a>
</out>
Код, который в soap.xml вставляет test.xml через DOM: Код: DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
dbfac.setCoalescing(true);
dbfac.setIgnoringElementContentWhitespace(true);
dbfac.setNamespaceAware(true);
DocumentBuilder db = dbfac.newDocumentBuilder();
Document soap = db.parse(new File("D:/OZWS/ws/xmlIntoSoap/soap.xml"));
Document doc = db.parse(new File("D:/OZWS/ws/xmlIntoSoap/test.xml"));
Element NewOperationResponse = (Element) soap.getDocumentElement().getElementsByTagNameNS("http://xmlintosoap.martynov.ru", "NewOperationResponse").item(0);
Node out = soap.importNode(doc.getDocumentElement(), true);
NewOperationResponse.appendChild(out);
Transformer trans = TransformerFactory.newInstance().newTransformer();
trans.transform(new DOMSource(soap.getDocumentElement()), new StreamResult(System.out));
Результат: Код:<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:NewOperationResponse xmlns:ns2="http://xmlintosoap.martynov.ru">
<out>
<ns2:a>
<ns2:b/>
<ns2:c>123</ns2:c>
</ns2:a>
</out></ns2:NewOperationResponse>
</S:Body>
</S:Envelope>
Декларация пространства имён исчезла, и тэг b схлопнулся. Как передать ранее подписанный XML через WebService? (JAX-WS 2.1, JDK6, TomCat6)
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close