Apache CXF - предоставление SEI для клиента - PullRequest
2 голосов
/ 19 марта 2012

Чтобы клиенты могли создать клиент Apache CXF для вашего веб-сервиса, если они используют JaxWsProxyFactoryBean, им нужен адрес конечной точки и код SEI. С предоставлением адреса конечной точки проблем нет, но как вы предоставляете SEI? Вы просто экспортируете интерфейс в банку и даете банку клиенту? Каждый раз, когда вы меняете SEI, вы должны связаться со всеми клиентами и снова дать банку?

Я имею в виду интерфейс IDataService в следующем примере:

public static void main(String[] args) throws SomeException {  

    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    factory.getInInterceptors().add(new LoggingInInterceptor());
    factory.getOutInterceptors().add(new LoggingOutInterceptor());
    factory.setServiceClass(IDataService.class);
    factory.setAddress("http://localhost:8080/WSTest/services/dataService");
    IDataService client = (IDataService) factory.create();

}

1 Ответ

3 голосов
/ 19 марта 2012

В идеале вы должны просто дать им WSDL сервиса - WSDL должен заключить здесь контракт, используя который они могут генерировать свой собственный набор шаблонов, используя любой доступный им инструмент - wsdl2java и т. Д.

Если клиент является внутренним для вашей компании, то да, вы также можете создать тонкий проект, содержащий только интерфейсы, типы, сообщения, упаковать его в банку и предоставить банку через некоторый внутренний репозиторий, предполагая, что ваш Интерфейс не слишком часто, и даже если он меняется, он публикуется заново во внутреннем хранилище.

...