Я использую Apache Axis 1.4 (да, старый) с wsdl2java для генерации клиентского кода для веб-сервиса. Я хотел бы установить дополнительные свойства для объекта Call перед вызовом методов для сгенерированной заглушки.
Например, я хотел бы установить имя пользователя, пароль, возможно добавить или изменить существующие заголовки и изменить обработчики клиента для использования различных реализаций.
В настоящее время я делаю это, изменяя сгенерированный класс Stub и вызывая соответствующие установщики. Однако я бы хотел достичь этого, не касаясь сгенерированных файлов. Я в замешательстве, потому что класс Stub имеет:
createCall()
, который создает объект вызова и устанавливает некоторые свойства. В настоящее время именно здесь я модифицирую сгенерированный исходный код; затем заглушка содержит:
clientMethod1(){
blahblah
Call _call = createCall();
......
_call.invoke();
}
Так что я не вижу способа, которым я могу использовать serviceLocator, чтобы получить заглушку, изменить свойства, которые я хочу изменить, а затем использовать заглушку для вызова методов, которые я хочу вызвать, учитывая, что методы заглушки createCall (), а затем вызвать invoke. Похоже, нет способа перехватить новый объект Call до того, как он будет вызван.
Итак: Как изменить свойства в вызове, не изменяя исходный код сгенерированного класса Stub?
Спасибо за информацию или даже ссылки на существующую документацию.