У меня есть приложение для веб-сервисов на Apache Geronimo 2.1.3.Мыло, проблема с пространством имен
Я использую JAX-WS, аннотируя POJOS, используя SOAP 1.1. (с использованием Sun JDK 1.5)
Различные клиенты используют веб-службы без заминки.
Один новый клиент не работает. В работающих клиентах только дочерний элемент в soapenv: Body имеет объявление пространства имен, а дочерние элементы дочернего элемента не имеют декларации пространства имен. В новом клиенте ВСЕ потомки soapenv: Body, включая дочерние элементы ребенка, имеют объявления пространства имен.
В сущности, это работает:
<soapenv:Body>
<ns1:Echo>
<Message>Hello world</Message>
...
Но это не делает:
<ns1:Echo>
<ns1:Message>Hello world</ns1:Message>
...
Вход в приложение будет показывать, что сообщение является недействительным, вместо "Привет мир"
Является ли это «плохим» запросом? Похоже, что он подтверждает базовый профиль WS-I?
Клиентская программа не может быть изменена. Есть ли способ переопределить что-то, чтобы заставить обе версии этого запроса работать?
Действительно, аннотация @WebParam имеет возможность идентификатора пространства имен, и прямо сейчас у нас ее нет, поэтому новый клиент ошибается при назначении параметров в том же пространстве имен, что и функция. Благодаря! – ericp