Динамическая реализация WebService - PullRequest
0 голосов
/ 25 марта 2010

У меня есть набор различных интерфейсов, и мне нужно предоставить им доступ через веб-сервисы.

Я реализовал эту задачу в .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, какие технологии / библиотеки следует использовать для решения такой задачи.

Спасибо.

1 Ответ

1 голос
/ 28 марта 2010

Вы можете использовать Axis2 для создания развертываемого архива из класса обслуживания Java (без аннотаций) и дескриптора службы.

...