Мне нужны одинаковые теги XML-запроса для разных методов
Мой интерфейс выглядит следующим образом
@WebService
@SOAPBinding(style = Style.RPC)
public interface Services {
@WebMethod public String login(String networkId,String password);
@WebMethod public String loginAS(String networkId,String password);
}
soapUI генерирует следующие запросы
Запрос 1:
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser = "http://service.project.com/">
<soapenv:Header/>
<soapenv:Body>
<ser:login>
<arg0>?</arg0>
<arg1>?</arg1>
</ser:login>
</soapenv:Body>
</soapenv:Envelope>
Запрос 2:
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser = "http://service.project.com/">
<soapenv:Header/>
<soapenv:Body>
<ser:loginAS>
<arg0>?</arg0>
<arg1>?</arg1>
</ser:loginAS>
</soapenv:Body>
</soapenv:Envelope>
Я хочу, чтобы оба моих запроса имели одинаковый тег (выделен)
Желаемый запрос:
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser = "http://service.project.com/">
<soapenv:Header/>
<soapenv:Body>
***<ser:login>***
<arg0>?</arg0>
<arg1>?</arg1>
***</ser:login>***
</soapenv:Body>
</soapenv:Envelope>
Я хочу, чтобы оба запроса имели один и тот же тег **<ser:login>** вместо двух разных тегов **<ser:login>** и **<Ser:loginAS>**.
получение ошибки "название операции должно быть уникальным"
Вам нужно различать два метода по разным параметрам или именам.
на самом деле я являюсь продюсером запроса. этот запрос должен обрабатываться разными пользователями. Мне нужно перенести это из точечной сети на java. в точечной сети он работал нормально (оба запроса имели одинаковый тег). не могу изменить имя метода или параметр сейчас. любая альтернатива?
@daniu, есть обновления?
если они такие же, почему бы не использовать только один метод вместо двух? и добавить еще один параметр к определенному.
@IvanFontalvo, этот проект довольно старый. Я получил проект по переносу этого на Java. Если я каким-либо образом изменю метод, потребителям этой службы придется вносить изменения в свою очередь, а это то, чего не хочет владелец проекта. Мне нужно оставить имя метода как есть.




Мой совет: используйте простой метод и добавьте новый параметр для идентификации
@WebService
@SOAPBinding(style = Style.RPC)
public interface Services {
@WebMethod public String login(String networkId,String password, String newParam);
Перегрузить методы не могу, вот в чем проблема. Не может вносить никаких изменений в название и параметры методов.
Вы пытались использовать фильтр и обрабатывать запрос, как хотите
@WebMethod(operationName = "login")не работает?