Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / SOAP запрос. Не удается добавить namespace в тэг / 4 сообщений из 4, страница 1 из 1
06.01.2017, 11:16
    #39379998
GLOCTARR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP запрос. Не удается добавить namespace в тэг
Добрый день!
Подскажите, формирую сообщение для запроса
SOAPElement first = soapMessage.getSOAPBody().addChildElement("ns",""," http://test.ru");
first.addChildElement("String_1","","").setValue(username);

Необходимо получить
<String_1 xmlns="">username </String_1>
А результат вот такой
<String_1> username </String_1>
...
Рейтинг: 0 / 0
06.01.2017, 11:19
    #39380002
GLOCTARR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP запрос. Не удается добавить namespace в тэг
от чего зависит наличие "xmlns"?
...
Рейтинг: 0 / 0
06.01.2017, 11:26
    #39380007
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP запрос. Не удается добавить namespace в тэг
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
import javax.xml.soap.*;
import javax.xml.transform.*;

public class Test {
    public static void main(String[] args) throws Exception {
        MessageFactory factory = MessageFactory.newInstance();
        SOAPMessage message = factory.createMessage();
        SOAPElement first = message.getSOAPBody().addChildElement("ns","","http://test.ru");
        first.addChildElement("String_1","","").setValue("username");


        TransformerFactory tff = TransformerFactory.newInstance();
        Transformer tf = tff.newTransformer();
        tf.setOutputProperty(OutputKeys.INDENT, "yes");
        tf.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");

        Source sc = message.getSOAPPart().getContent();
        StreamResult result = new StreamResult(System.out);
        tf.transform(sc, result);
    }
}




Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body>
    <ns xmlns="http://test.ru">
      <String_1 xmlns="">username</String_1>
    </ns>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
...
Рейтинг: 0 / 0
06.01.2017, 12:20
    #39380033
GLOCTARR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP запрос. Не удается добавить namespace в тэг
Blazkowicz, спасибо за ответ
Вот такой результат именно в проекте уже выходит, очень много всего подключено там
<SOAP-ENV:Body>
<proxyLogin xmlns=" http://test.ru">
<String_1>user</String_1>
<String_2>pass</String_2>
</proxyLogin>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Если сделать чистый проект, только для одного запроса, в не проекта, то формируется корректно

<SOAP-ENV:Body>
<proLogin xmlns=" http://test.ru">
<String_1 xmlns="">user</String_1>
<String_2 xmlns="">pass</String_2>
</proLogin>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Получается что-то влияет на формирование тэга. Может быть, вот с этим моментом сталкивались.
Добавление xmlns происходит в методе addChildElement("String_1","","")
Дебагом никак не найду в какой именно момент xmlns параметр добавляется, отрабатывает одинаково оба варианта, если по шагам смотреть.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / SOAP запрос. Не удается добавить namespace в тэг / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]