Вызов веб-сервисов из кода JSF

Скажем, то, что у Вас есть уровень представления в JSF, и что к Вашему бизнес-уровню получают доступ с помощью веб-сервисов. Как Вы назвали бы свои веб-сервисы от JSF?

Я рассматривал, чтобы иметь мои бобы поддержки для вызова веб-сервисов, но я просто, хотя я мог использовать Ajax с JSF для соединения с веб-сервисами. Что Вы выбрали бы и почему? Какой-либо другой выбор Вы могли рекомендовать?

Править: Я использую Spring в бизнес-уровне, возможно, та информация может помочь с предложениями.

Спасибо.

5
задан Abel Morelos 17 May 2010 в 21:19
поделиться

3 ответа

Я бы обернул вызов веб-сервиса в класс сервиса, доступ к которому осуществляется через управляемый боб. Таким образом, внешний модуль не будет знать, как именно к нему поступают данные - через веб-сервисы или каким-либо другим способом.

10
ответ дан 18 December 2019 в 11:54
поделиться

Допустим, у вас есть презентационный уровень в JSF, а доступ к бизнес-уровню осуществляется с помощью веб-сервисов. Как вы будете вызывать веб-сервисы из JSF?

Классический" подход заключается в том, чтобы внедрить класс фабрики JAX-WS-прокси (сгенерированный из WSDL) в ManagedBean:

public class ItemController {
    @WebServiceRef(wsdlLocation = "http://localhost:8080/CatalogService/Catalog?wsdl")
    private CatalogService service;

    public DataModel getItems() {
        if (model==null  || index != firstItem){
            model=getNextItems();
        }
        return this.model;
    }
    public DataModel getNextItems() {
        Catalog port = service.getCatalogPort();
        model = new ListDataModel(port.getItems( firstItem,batchSize));
        return model;
    }
}

Пример взят из Sample Application using JAX-WS, JSF, EJB 3.0, and Java.

3
ответ дан 18 December 2019 в 11:54
поделиться

Я бы реализовал EJB-компоненты и представил их как веб-службу (для независимого от языка удаленного доступа) в приложении. Я бы обращался к EJB-компонентам путем поиска и прямого вызова их (для повышения производительности). К сожалению, вы не сказали, какую платформу вы используете, поэтому я не могу быть уверен, будут ли мои предложения осуществимы.

2
ответ дан 18 December 2019 в 11:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: