У меня есть набор различных интерфейсов, и мне нужно предоставить им доступ через веб-сервисы.
Я реализовал эту задачу в .NET следующим образом: динамически генерируемая реализация интерфейса на IL, помеченные методы с аннотацией WebMethod и в обработчике * .asmx, называемые сгенерированной заглушкой.
Больше необходимо иметь возможность изменять сигнатуры метода (например, изменять тип определенного аргумента или добавлять новые аргументы), т.е. не всегда явно реализовывать интерфейс и использовать его в качестве шаблона декоратора.
Пример:
interface ISomeService {
void simpleMetod (String arg1);
void customMetod (CusomType arg1, Integer arg2);
}
// Need to dynamically generate such class
@WebService
class SomeWebService {
private ISomeService someService = new SomeServiceImpl ();
@WebMethod
public void simpleMethod (String arg1) {
someService.simpleMethod (arg1);
}
@WebMethod
public void customMethod (String arg1, Integer arg2) {
someService.customMethod (CusomType.fromString (arg1), arg2);
}
}
Интерфейсов, таких как ISomeService довольно много. И вручную писать код, подобный этому, я не хочу.
Я недавно работаю с Java, какие технологии / библиотеки следует использовать для решения такой задачи.
Спасибо.